/* Solutions keeps reading surfaces solid. Pearl glass is reserved for cards and chrome. */
:root { color-scheme:light dark; }
body[data-site="solutions"] {
  /* Pearl reading surfaces, warm graphite chrome, and one walnut action color. */
  --ms-bg:#faf8f3; --ms-ink:#242420; --ms-muted:#55524b; --ms-card:#fffefa;
  --ms-soft:#efede6; --ms-line:#b8b3a8; --ms-control-line:#82796b; --ms-accent:#514637; --ms-on-accent:#fffefa;
  --ms-text:var(--ms-ink); --ms-border:var(--ms-line); --ms-focus:var(--ms-accent);
  --ms-panel:#f8f6f1; --ms-panel-glass:#f8f6f1f7; --ms-panel-hover:#eeeae0; --ms-panel-ink:var(--ms-ink); --ms-panel-muted:var(--ms-muted);
  --ms-chrome:#1b1b19; --ms-chrome-glass:#1b1b19f5; --ms-chrome-ink:#faf8f3; --ms-chrome-muted:#d4cec1; --ms-chrome-line:#77736b;
  --ms-highlight:#ffffff99; --ms-editorial:#e8e3d9; --ms-display-accent:#6c5b43;
  --ms-shadow:0 12px 36px #2424200b; --ms-shadow-hover:0 18px 38px #24242018; --ms-glass:#fffefaf7;
  --ms-radius-card:24px; --ms-radius-control:16px; --ms-section-space:88px; --ms-grid-gap:24px;
  --ms-content-width:1200px; --ms-reading-width:900px; --ms-page-gutter:32px;
  background:var(--ms-bg); color:var(--ms-ink); font-size:18px; line-height:1.6; overflow-wrap:anywhere;
  font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif;
}
body[data-site="solutions"] main { overflow:clip; }
body[data-site="solutions"] :is(h1,h2,h3) { color:inherit; font-family:inherit; font-weight:650; text-wrap:balance; }
body[data-site="solutions"] h1 { font-size:clamp(44px,5.4vw,80px); letter-spacing:-.055em; line-height:1.06; margin:0 0 24px; }
body[data-site="solutions"] h2 { font-size:clamp(30px,3.4vw,48px); letter-spacing:-.04em; line-height:1.15; margin:0 0 24px; }
body[data-site="solutions"] h3 { font-size:24px; letter-spacing:-.025em; line-height:1.3; margin:0 0 12px; }
body[data-site="solutions"] main p { font-size:18px; line-height:1.6; color:var(--ms-muted); margin:0 0 24px; }
body[data-site="solutions"] :focus-visible { outline:3px solid var(--ms-focus); outline-offset:5px; }
body[data-site="solutions"] [id] { scroll-margin-top:calc(var(--ms-header-height,100px) + 32px); }
body[data-site="solutions"] .skip-link { z-index:200; min-height:56px; font-size:18px; }
.ms-shell { width:min(100% - 2 * var(--ms-page-gutter),var(--ms-content-width)); margin-inline:auto; }
.ms-section { padding-block:var(--ms-section-space); }
.ms-soft { background:var(--ms-soft); }
.ms-section-heading { margin-bottom:36px; }
body[data-site="solutions"] main .ms-eyebrow { color:var(--ms-muted); font-size:18px; line-height:1.6; font-weight:650; letter-spacing:.075em; margin:0 0 18px; }
.ms-page-intro { padding-block:72px 40px; }
.ms-page-intro>p:last-child { max-width:700px; }
.ms-home-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:20px; min-height:650px; padding-block:64px; }
.ms-home-copy { position:relative; z-index:1; min-width:0; }
.ms-home-copy>p { max-width:530px; }
.ms-hero-actions { display:flex; flex-wrap:wrap; gap:12px; max-width:520px; }
.ms-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:56px; max-width:100%; padding:14px 24px; border:1px solid var(--ms-line); border-radius:var(--ms-radius-control); font-size:18px; line-height:1.4; font-weight:650; text-align:center; text-decoration:none; transition:transform 180ms cubic-bezier(.32,.72,0,1),box-shadow 180ms,background 180ms; }
.ms-primary { background:var(--ms-accent); color:var(--ms-on-accent); border-color:var(--ms-accent); box-shadow:0 4px 12px #51463728; }
.ms-secondary { background:var(--ms-card); color:var(--ms-ink); box-shadow:inset 0 1px var(--ms-highlight); }
.ms-hero-actions>.ms-button { flex:1 1 220px; }
.ms-hero-actions>.ms-button:nth-child(2) { flex-direction:column; gap:0; }
.ms-hero-actions>.ms-button span { font-size:18px; font-weight:400; }
.ms-hero-actions>.ms-button:last-child { flex-basis:100%; }
.ms-button:active { transform:scale(.97); transition-duration:90ms; }
.ms-device-scene { width:100%; aspect-ratio:640/520; position:relative; pointer-events:none; isolation:isolate; }
.ms-device-scene>img { display:block; width:100%; height:100%; object-fit:contain; }
.ms-three-mount { position:absolute; inset:0; }
.ms-three-mount canvas { display:block; width:100%; height:100%; }
.ms-device-scene[data-ready="true"]>img { visibility:hidden; }
.ms-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ms-grid-gap); }
.ms-glass { background:var(--ms-card); border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); box-shadow:var(--ms-shadow),inset 0 1px var(--ms-highlight); }
.ms-service-card { display:flex; flex-direction:column; padding:32px; position:relative; overflow:hidden; isolation:isolate; min-height:320px; transition:transform 200ms,box-shadow 200ms; }
.ms-service-card>svg { width:48px; height:48px; margin-bottom:32px; color:var(--ms-ink); }
.ms-service-card>span { margin-top:auto; min-height:48px; display:flex; align-items:center; color:var(--ms-accent); font-weight:650; text-decoration:underline; text-underline-offset:5px; }
.ms-service-card::before { content:""; position:absolute; pointer-events:none; inset:0; z-index:-1; border-radius:inherit; background:radial-gradient(ellipse at var(--pointer-x,30%) var(--pointer-y,0%),#ffffff55,transparent 55%); }
.ms-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(40px,6vw,80px); align-items:start; }
.ms-two-column>div>p { max-width:520px; }
.ms-text-link { display:inline-flex; min-height:48px; align-items:center; color:var(--ms-accent); text-decoration:underline; text-underline-offset:5px; font-size:18px; font-weight:650; overflow-wrap:anywhere; }
.ms-steps { margin:0 0 36px; padding:0; list-style:none; display:grid; gap:32px; }
.ms-steps>li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:20px; }
.ms-steps>li>span { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--ms-line); border-radius:50%; color:var(--ms-ink); font-size:20px; }
body[data-site="solutions"] .ms-steps h2 { font-size:30px; }
body[data-site="solutions"] .ms-steps p { margin-bottom:0; }
.ms-detail-list { padding-bottom:72px; }
.ms-detail { display:grid; grid-template-columns:minmax(150px,.6fr) minmax(0,1.4fr); gap:64px; padding-block:56px; border-top:1px solid var(--ms-line); }
.ms-service-art { min-height:240px; display:grid; place-items:center; border-radius:28px; background:var(--ms-soft); align-self:start; }
.ms-service-art svg { width:112px; height:112px; color:var(--ms-ink); }
.ms-detail ul { padding-left:22px; margin:0 0 28px; }
.ms-detail li { margin-block:8px; }
.ms-facts { margin:24px 0 32px; display:grid; gap:20px; }
.ms-facts>div { display:grid; gap:4px; }
.ms-facts dt { font-weight:650; }
.ms-facts dd { margin:0; color:var(--ms-muted); }
.ms-price-copy { padding-top:24px; }
.ms-price-copy>p { max-width:740px; }
.ms-customer-links { display:flex; justify-content:space-between; gap:24px; padding-block:24px; border-bottom:1px solid var(--ms-line); }
.ms-customer-links a { min-height:56px; align-items:center; gap:16px; }
.ms-invoice-guide { max-width:820px; padding-top:40px; }
.ms-invoice-actions { display:flex; flex-wrap:wrap; gap:16px; margin:28px 0; }
.ms-invoice-actions .ms-button { gap:10px; flex-wrap:wrap; }
.ms-payment-note { margin-top:20px; }
@media(max-width:500px) { .ms-customer-links { flex-direction:column; gap:4px; }.ms-invoice-actions .ms-button { width:100%; } }
.ms-payment-section { padding-block:64px 88px; background:var(--ms-soft); }
.ms-payment-pending { margin-top:32px; border-top:1px solid var(--ms-line); padding-top:28px; max-width:780px; }
.ms-payment-pending>p { max-width:720px; }
.ms-about-editorial { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(48px,8vw,120px); align-items:start; padding-block:clamp(72px,10vw,132px); }
body[data-site="solutions"] .ms-about-statement h2 { font-size:clamp(44px,5.4vw,76px); line-height:1.04; letter-spacing:-.058em; margin:0; }
.ms-about-statement h2 em { font-family:Georgia,"Times New Roman",serif; font-weight:400; color:var(--ms-display-accent); }
.ms-about-copy { max-width:540px; padding-top:64px; }
.ms-about-copy .ms-text-link { margin-top:8px; }
.ms-about-values { background:var(--ms-editorial); border-block:1px solid var(--ms-line); }
.ms-about-values-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.ms-about-values article { padding:48px 32px 52px; border-left:1px solid var(--ms-line); }
.ms-about-values article:last-child { border-right:1px solid var(--ms-line); }
.ms-about-values article>span { display:block; margin-bottom:48px; color:var(--ms-muted); font-size:18px; font-weight:650; letter-spacing:.1em; }
.ms-about-values article h3 { margin-bottom:12px; }
body[data-site="solutions"] .ms-about-values article p { margin:0; }
.ms-about-close { max-width:820px; text-align:center; }
.ms-about-close p { margin-inline:auto!important; }
.ms-about-close .ms-button { min-width:220px; }
.ms-contact-options { display:grid; grid-template-columns:1fr 1fr; gap:64px; padding-top:24px; }
.ms-contact-card { border-top:1px solid var(--ms-line); padding-top:28px; }
.ms-contact-card .ms-button { margin:0 12px 16px 0; }
.ms-phone-link { display:inline-flex; align-items:center; min-height:48px; font-size:clamp(24px,3vw,32px); font-weight:650; color:var(--ms-accent); text-decoration:underline; text-underline-offset:6px; }
body[data-site="solutions"][data-page="book"] .booking-shell { margin-block:40px 64px; }
/* Keep booking on the same palette even though its shared stylesheet loads later. */
body[data-site="solutions"] .booking-shell { --booking-bg:var(--ms-card); --booking-ink:var(--ms-ink); --booking-muted:var(--ms-muted); --booking-line:var(--ms-control-line); --booking-accent:var(--ms-accent); width:min(100% - 2 * var(--ms-page-gutter),var(--ms-reading-width)); border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); box-shadow:var(--ms-shadow); }
body[data-site="solutions"] :is(.booking-primary,.booking-secondary) { border-radius:var(--ms-radius-control); }
body[data-site="solutions"] .booking-primary { color:var(--ms-on-accent); }
@supports(backdrop-filter:blur(24px)) { .ms-glass { background:var(--ms-glass); backdrop-filter:blur(24px) saturate(160%); } }
@media(hover:hover) and (pointer:fine) { .ms-service-card:hover { transform:translateY(-2px); box-shadow:var(--ms-shadow-hover),inset 0 1px var(--ms-highlight); } .ms-button:hover { box-shadow:0 8px 20px #24242020; } }
@media(prefers-color-scheme:dark) {
 body[data-site="solutions"] { --ms-bg:#1b1b19; --ms-ink:#f6f3eb; --ms-muted:#d4cec1; --ms-card:#282824; --ms-soft:#232320; --ms-line:#77736b; --ms-control-line:#918b7f; --ms-accent:#ebd9b4; --ms-on-accent:#242420; --ms-panel:#282824; --ms-panel-glass:#282824f7; --ms-panel-hover:#393731; --ms-highlight:#ffffff18; --ms-editorial:#2c2b26; --ms-display-accent:#e9dfca; --ms-glass:#282824f7; --ms-shadow:0 12px 36px #0003; --ms-shadow-hover:0 18px 38px #0005; }
 .ms-service-card::before { background:radial-gradient(ellipse at var(--pointer-x,30%) var(--pointer-y,0%),#ffffff09,transparent 55%); }
}
@media(max-width:900px) {
 body[data-site="solutions"] { --ms-page-gutter:20px; }
 .ms-home-hero { grid-template-columns:1fr; gap:32px; padding-block:44px 24px; min-height:0; }
 .ms-home-copy { max-width:640px; margin-inline:auto; width:100%; }
 .ms-device-scene { max-width:560px; margin-inline:auto; }
 .ms-service-grid { grid-template-columns:1fr; gap:16px; }
 .ms-service-card { min-height:0; padding:28px; }
 .ms-service-card>svg { margin-bottom:24px; }
 .ms-two-column { grid-template-columns:minmax(0,1fr); gap:40px; }
 .ms-detail { grid-template-columns:160px minmax(0,1fr); gap:32px; }
 .ms-service-art { min-height:180px; }
 .ms-about-editorial { gap:28px; }
 .ms-about-copy { padding-top:0; }
 .ms-about-values article { padding:36px 20px 40px; }
 .ms-contact-options { grid-template-columns:1fr; gap:40px; }
}
@media(max-width:600px) {
 body[data-site="solutions"] { --ms-section-space:56px; --ms-grid-gap:16px; }
 body[data-site="solutions"] h1 { font-size:44px; margin-bottom:20px; }
 body[data-site="solutions"] h2 { font-size:32px; }
 .ms-home-hero { padding-top:28px; gap:24px; }
 .ms-hero-actions { gap:10px; }
 .ms-hero-actions>.ms-button { flex-basis:100%; width:100%; min-height:56px; padding:12px 16px; }
 .ms-home-copy>p { margin-bottom:20px!important; }
 .ms-page-intro { padding-block:40px 24px; }
 .ms-detail { grid-template-columns:1fr; padding-block:36px; gap:28px; }
 .ms-service-art { min-height:160px; }
 .ms-service-art svg { width:88px; height:88px; }
 .ms-detail-list { padding-bottom:40px; }
 .ms-about-editorial { grid-template-columns:1fr; padding-block:56px; }
 .ms-about-values-grid { grid-template-columns:1fr; }
 .ms-about-values article { border-left:0; border-bottom:1px solid var(--ms-line); padding:28px 0; }
 .ms-about-values article:last-child { border-right:0; border-bottom:0; }
 .ms-about-values article>span { margin-bottom:12px; }
 .ms-payment-section { padding-block:48px; }
 .ms-contact-options { padding-top:0; }
 .ms-steps>li { gap:14px; }
 body[data-site="solutions"][data-page="book"] .booking-shell { margin-block:20px 40px; }
}
@view-transition { navigation:auto; }
::view-transition-old(root) { animation:ms-page-out 160ms ease both; }
::view-transition-new(root) { animation:ms-page-in 200ms ease both; }
@keyframes ms-page-out { to { opacity:0; transform:translateY(-8px); } }
@keyframes ms-page-in { from { opacity:0; transform:translateY(8px); } }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 body[data-site="solutions"] *,body[data-site="solutions"] *::before,body[data-site="solutions"] *::after { animation:none!important; transition:none!important; }
 .ms-service-card:hover,.ms-button:active { transform:none; }
 ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}
/* A subtle pearl rim responds to the pointer, without a continuous reading-area loop. */
.ms-service-card::after {
 content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
 padding:1px; opacity:.45;
 background:conic-gradient(from 30deg at var(--pointer-x,50%) var(--pointer-y,50%),#d8c4ec,#c1dfd4,#edd1d5,#e4d8ac,#d8c4ec);
 mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
 mask-composite:exclude;
}
.ms-service-card[data-pointer-light="true"]::after,.ms-service-card:focus-visible::after { opacity:.8; }
@supports not (mask-composite:exclude) { .ms-service-card::after { display:none; } }
@media(prefers-reduced-motion:reduce) { .ms-service-card::after { background:linear-gradient(130deg,#d8c4ec,#c1dfd4,#e4d8ac); } }
.ms-payment-wallet { padding:24px; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); background:var(--ms-card); box-shadow:inset 0 1px var(--ms-highlight),var(--ms-shadow); margin:24px 0; }
.ms-pay-chips { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; }
.ms-pay-chip { display:inline-flex; align-items:center; justify-content:center; gap:10px; max-width:100%; min-height:56px; padding:10px 18px; border-radius:14px; border:1px solid #d2cec5; background:#fffefa; color:#242420; box-shadow:0 3px 8px #0001; font-size:18px; line-height:1.4; transition:transform 180ms,box-shadow 180ms; }
.ms-pay-chip > :is(svg,img) { flex-shrink:0; }
.ms-pay-chip img { display:block; width:25px; height:30px; object-fit:contain; filter:none; }
.site-footer > .ms-pay-chips { padding:0 24px 32px; }
.site-footer .ms-pay-chip { min-height:40px; padding:5px 14px; border-radius:10px; }
.site-footer .ms-pay-chip img { height:28px; }
@media(hover:hover) and (pointer:fine) { .ms-pay-chip:hover { transform:translateY(-2px); box-shadow:0 5px 12px #0002; } }
@media(prefers-reduced-motion:reduce) { .ms-pay-chip:hover { transform:none; } }
@media(max-width:500px) { .ms-payment-wallet { padding:16px; } }
.ms-pay-row { padding:12px 0 24px; }
.ms-pay-row + .ms-pay-row { border-top:1px solid var(--ms-line); padding-top:24px; }
.ms-pay-row h3 { text-align:center; font-size:18px; margin:0 0 16px; }
.ms-payment-wallet { overflow:hidden; }
.ms-pay-motion { display:flex; margin:8px auto 0; }
.ms-pay-motion[hidden] { display:none; }
.ms-payment-viewport { padding:8px 0; overflow:hidden; }
.ms-pay-group { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.ms-payment-viewport .ms-pay-chip { flex:0 0 auto; min-width:132px; text-decoration:none; }
.ms-pay-chip:focus-visible { outline:3px solid var(--ms-accent); outline-offset:3px; transform:translateY(-2px); box-shadow:0 5px 12px #0002; }
[data-payment-enhanced] .ms-payment-viewport { mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent); }
[data-payment-enhanced] .ms-payment-track { display:flex; width:max-content; }
[data-payment-enhanced] .ms-pay-group { flex-wrap:nowrap; justify-content:flex-start; padding-right:12px; }
[data-payment-wallet][data-motion="running"] .ms-payment-track,
[data-payment-wallet][data-motion="paused"] .ms-payment-track { animation:payment-scroll 80s linear infinite; }
[data-payment-wallet] .ms-pay-row:nth-child(2) .ms-payment-track { animation-direction:reverse; }
[data-payment-wallet][data-motion="paused"] .ms-payment-track,
[data-payment-wallet]:hover .ms-payment-track,
[data-payment-wallet]:focus-within .ms-payment-track { animation-play-state:paused; }
@keyframes payment-scroll { from { transform:translateX(-50%); } to { transform:translateX(0); } }
/* Focus and static preferences expose each real method once, without edge fades. */
[data-payment-wallet][data-motion="static"] .ms-payment-viewport,
[data-payment-wallet][data-payment-keyboard] .ms-payment-viewport { mask-image:none; }
[data-payment-wallet][data-motion="static"] .ms-payment-track,
[data-payment-wallet][data-payment-keyboard] .ms-payment-track { display:block; width:100%; animation:none; transform:none; }
[data-payment-wallet][data-motion="static"] .ms-pay-group,
[data-payment-wallet][data-payment-keyboard] .ms-pay-group { flex-wrap:wrap; justify-content:center; padding-right:0; }
[data-payment-wallet][data-motion="static"] [data-payment-copy],
[data-payment-wallet][data-payment-keyboard] [data-payment-copy] { display:none; }
.ms-invoice-guide { scroll-margin-top:120px; }
.ms-invoice-guide>.ms-text-link { margin-bottom:24px; }
.ms-payment-options { margin-block:32px; }
.ms-payment-back { padding-top:24px; }
.ms-payment-notice { padding:24px; margin-block:24px; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); background:var(--ms-soft); }
.ms-payment-request { max-width:var(--ms-reading-width); --booking-bg:var(--ms-card); --booking-ink:var(--ms-ink); --booking-muted:var(--ms-muted); --booking-line:var(--ms-control-line); --booking-accent:var(--ms-accent); }
.ms-payment-request fieldset { min-width:0; border:0; padding:0; margin:24px 0; }
.ms-payment-request [aria-invalid="true"] { border:2px solid #a32020; }
.ms-payment-request .booking-error { color:#a32020; border-left:3px solid currentColor; padding-left:16px; }
.ms-payment-request button[type="submit"] { margin-top:24px; }
.ms-payment-draft { padding:24px; border:1px solid var(--ms-line); border-radius:var(--ms-radius-card); background:var(--ms-card); }
.ms-payment-draft pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; margin-block:24px; }
.ms-payment-help { max-width:var(--ms-reading-width); }
.ms-payment-help details p { max-width:72ch; }
.ms-payment-help details { padding-block:20px; border-bottom:1px solid var(--ms-line); }
.ms-payment-help summary { min-height:56px; font-size:20px; font-weight:650; cursor:pointer; padding-block:12px; }
.ms-payment-help details p { margin-block:12px; }
.ms-payment-help h2 { margin-top:40px; }
@media(prefers-color-scheme:dark) { .ms-payment-request .booking-error { color:#ffb4af; } .ms-payment-request [aria-invalid="true"] { border-color:#ffb4af; } }
@media(prefers-reduced-motion:reduce) { .ms-pay-chip:focus-visible { transform:none; } }
@media(forced-colors:active) {
 .ms-payment-wallet { background:Canvas; border-color:CanvasText; backdrop-filter:none; box-shadow:none; }
 .ms-pay-chip { background:Canvas; color:LinkText; border-color:LinkText; box-shadow:none; }
 .ms-pay-chip:focus-visible { outline-color:Highlight; box-shadow:none; }
 .ms-pay-chip img { forced-color-adjust:none; }
}
/* The M is the first letter of the v1 lockup on graphite surfaces. */
body[data-site="solutions"] .site-footer .brand-symbol { filter:brightness(0) invert(1); object-fit:contain; }
@media(forced-colors:active) {
 body[data-site="solutions"] .ms-header .ms-brand img { filter:none; background:#fff; forced-color-adjust:none; border-radius:6px; }
 body[data-site="solutions"] .site-footer { background:Canvas; color:CanvasText; }
 body[data-site="solutions"] :is(.footer-brand,.footer-inner p,.footer-contact,.footer-links,.footer-bottom) { color:CanvasText; }
 body[data-site="solutions"] .site-footer a { color:LinkText; }
 body[data-site="solutions"] .site-footer .brand-symbol { filter:none; background:#fff; forced-color-adjust:none; border-radius:6px; }
}
