/* Shared visual language for the standalone website. Loaded after legacy CSS. */
.visual-system {
  --ink:#20252b; --muted:#52606b; --paper:#fff; --surface:#f4f6f8;
  --dark:#101216; --border:#cbd4dc; --link:#164e73; --content:1160px;
  margin:0; color:var(--ink); background:var(--paper); font:18px/1.6 Arial,sans-serif;
}
.visual-system *, .visual-system *::before, .visual-system *::after { box-sizing:border-box; }
.visual-system [id] { scroll-margin-top:110px; }
.visual-preserved-anchor { display:block; height:0; padding:0; margin:0; overflow:hidden; }
.visual-system a { text-underline-offset:4px; }
.visual-system a:focus-visible, .visual-system button:focus-visible, .visual-system summary:focus-visible { outline:3px solid #d9a900!important; outline-offset:4px; box-shadow:0 0 0 6px #fff; }
.visual-system .site-header { position:sticky; top:0; z-index:1000; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:88px; padding:12px max(24px,calc((100% - var(--content))/2)); background:var(--dark); color:#fff; font:16px/1.4 Arial,sans-serif; }
.visual-system .site-header img { display:block; width:140px; height:56px; object-fit:contain; filter:none; }
.visual-system .site-header a { color:#fff!important; text-decoration:none; }
.visual-system .service-desktop-nav { display:flex; align-items:center; gap:24px; }
.visual-system .service-desktop-nav a { display:flex; align-items:center; min-height:44px; border-bottom:2px solid transparent; padding:8px 0; }
.visual-system .site-header a[aria-current] { border-bottom-color:#8bcae6; }
.visual-system .site-header a:hover { color:#b6def0!important; }
.visual-system .service-mobile-nav { display:none; font-weight:600; }
.visual-system .service-mobile-nav summary { padding:12px; min-height:48px; cursor:pointer; list-style:none; }
.visual-system .service-mobile-nav summary::-webkit-details-marker { display:none; }
.visual-system .service-mobile-nav summary::before { content:'☰'; margin-right:10px; font-size:20px; vertical-align:-1px; }
.visual-system .service-mobile-nav[open] summary::before { content:'×'; }
.visual-system .service-mobile-nav nav { position:absolute; top:100%; right:20px; width:min(340px,calc(100vw - 40px)); max-height:calc(100dvh - 150px); overflow:auto; background:var(--dark); border:1px solid #52606b; box-shadow:0 16px 32px #0004; padding:12px; display:grid; gap:0; z-index:1001; }
.visual-system .service-mobile-nav nav a { display:flex; align-items:center; min-height:48px; padding:10px 12px; border-bottom:1px solid #343a42; }
.visual-system .site-footer { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding:64px max(24px,calc((100% - var(--content))/2)); background:var(--dark); color:#e4e9ed; font:16px/1.6 Arial,sans-serif; }
.visual-system .site-footer a { color:#fff!important; display:block; width:fit-content; padding:5px 0; }
.visual-system .site-footer p { margin:16px 0; }
.visual-system .site-footer .site-footer-label { color:#b9c6d0; font:700 14px/1.5 Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; margin:0 0 16px; }
.visual-system .site-footer nav { display:block; }
.visual-system .service-wordmark img { display:block; width:140px; height:56px; object-fit:contain; }
.visual-system .visual-button,.visual-system .service-actions a,.visual-system .service-cta { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 22px; border:1px solid #fff; border-radius:4px; background:#fff; color:#161b20!important; text-decoration:none; font:700 16px/1.4 Arial,sans-serif; text-align:center; }
.visual-system .visual-button--secondary,.visual-system .service-actions a+a { background:transparent; color:#fff!important; border-color:#a2b2c0; }
.visual-system .visual-button:hover,.visual-system .service-actions a:hover { background:#cde6f1; color:#101216!important; border-color:#cde6f1; }
.visual-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:28px; }
.visual-system .visual-brand-hero { position:relative; isolation:isolate; display:flex; align-items:center; min-height:600px; height:min(740px,calc(90svh - 88px)); padding:64px max(24px,calc((100% - var(--content))/2)); background:#15191d; color:#fff; }
.visual-brand-hero::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#000c,#0005); }
.visual-brand-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.visual-system .visual-brand-hero__copy { max-width:850px; }
.visual-system .visual-brand-hero h1 { font:700 clamp(52px,5vw,72px)/1.08 ReformaGrotesk,Arial,sans-serif; letter-spacing:.01em; text-transform:uppercase; margin:0 0 24px; color:#fff; }
.visual-system .visual-brand-hero p { font:20px/1.6 Arial,sans-serif; max-width:580px; margin:0 0 16px; }
.visual-system .visual-brand-hero .visual-eyebrow { font:700 13px/1.5 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; margin-bottom:20px; }
.visual-system .service-hero { background:#191e24; padding:28px max(24px,calc((100% - var(--content))/2)) 64px; border-bottom:0; }
.visual-system .service-eyebrow { margin:32px 0 12px; }
.visual-system .service-hero h1 { font:700 clamp(34px,4.2vw,56px)/1.1 Arial,sans-serif; letter-spacing:-.025em; margin:0 0 24px; max-width:950px; }
.visual-system .service-intro { font:20px/1.6 Arial,sans-serif; max-width:720px; margin:0 0 24px; }
.visual-system .service-breadcrumbs { font:14px/1.5 Arial,sans-serif; }
.visual-system .service-breadcrumbs ol { gap:8px; }
.visual-system .service-layout { max-width:1208px; padding:64px 24px; display:grid; grid-template-columns:minmax(0,1fr) 264px; gap:48px; margin:auto; align-items:start; }
.visual-system .service-layout > .service-aside { grid-column:2; grid-row:1; width:100%; position:sticky; top:112px; padding:20px; border:1px solid var(--border); background:var(--surface); }
.visual-system .service-layout > .local-article-record { grid-column:1; grid-row:1; min-width:0; }
.visual-system .visual-toc > summary { font:700 18px/1.4 Arial,sans-serif; cursor:pointer; padding:4px 0; }
.visual-system .visual-toc > div { padding-top:8px; }
.visual-system .visual-toc ol { margin:8px 0 20px; padding-left:20px; font:15px/1.55 Arial,sans-serif; }
.visual-system .visual-toc li { margin:8px 0; }
.visual-system .visual-toc a { color:var(--link); }
.visual-system .visual-toc p { font-size:15px; }
.visual-system .local-seo-article { font:18px/1.65 Arial,sans-serif; max-width:800px; width:100%; padding:64px 24px; margin:auto; color:var(--ink); }
.visual-system.service-page .service-layout .local-seo-article { max-width:none; padding:0; }
.visual-system .local-seo-article > p { max-width:740px; }
.visual-system .local-seo-article h2 { font:700 34px/1.2 Arial,sans-serif; letter-spacing:-.02em; margin:48px 0 20px; }
.visual-system .local-seo-article h2:first-child { margin-top:0; }
.visual-system .local-seo-article h3 { font:700 24px/1.3 Arial,sans-serif; margin:32px 0 12px; }
.visual-system .local-seo-article p { margin:0 0 20px; }
.visual-system .local-seo-article li { margin-bottom:8px; }
.visual-system .local-seo-article details { border:1px solid var(--border); border-radius:4px; padding:16px 20px; margin:12px 0; }
.visual-system .local-seo-article details summary { font:700 17px/1.5 Arial,sans-serif; min-height:28px; cursor:pointer; }
.visual-system .local-seo-article details p { margin:16px 0 0; }
.visual-system .visual-context { border-left:3px solid #8eacbc; padding-left:20px; color:var(--muted); }
.visual-system .service-related { max-width:1208px; padding:0 24px 64px; }
.visual-system .service-related h2 { font:700 34px/1.2 Arial,sans-serif; margin:0 0 24px; }
.visual-system .service-related-list { gap:24px; }
.visual-system .service-related-list a { border-color:var(--border); padding:24px; font:700 18px/1.4 Arial,sans-serif; border-radius:4px; }
.visual-system .mini-discovery { padding:64px 24px; }
.visual-system .mini-discovery > div { max-width:1160px; }
.visual-system .mini-discovery h2 { font:700 36px/1.2 Arial,sans-serif; }
.visual-system .visual-grid-heading { padding-top:40px; padding-bottom:32px; }
.visual-system .visual-grid-heading a { color:var(--link)!important; text-decoration:underline!important; }
.visual-system .editorial-grid { gap:24px; }
.visual-system .editorial-card { padding:24px; border-radius:4px; background:var(--surface); }
.visual-system .editorial-card strong { font:700 23px/1.3 Arial,sans-serif; }
.visual-system .editorial-card span { font:17px/1.55 Arial,sans-serif; }
.visual-system .mini-catalog-jumps { gap:12px; margin-top:24px; }
.visual-system .mini-catalog-jumps a { border-radius:4px; min-height:44px; }
.visual-system .mini-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0 48px; }
.visual-system .mini-service-entry { padding:24px; border-radius:4px; background:var(--surface); }
.visual-system .local-seo-article .mini-service-entry h3 { font:700 23px/1.3 Arial,sans-serif; margin:0 0 16px; }
.visual-system .mini-service-entry p { font-size:16px; line-height:1.55; }
.visual-system .mini-service-entry .mini-service-scope { padding:12px 0; border:0; border-top:1px solid var(--border); border-radius:0; margin:0 0 12px; }
.visual-system .mini-service-scope summary { color:var(--link); }
.visual-system .mini-service-scope ul { margin:16px 0 0; }
.visual-system .mini-service-more { padding-top:8px; font-size:16px; }
.visual-service-opening { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:48px; align-items:center; }
.visual-system .visual-service-opening h1 { font-size:clamp(34px,3.6vw,52px); }
.visual-service-photo { margin:32px 0 0; }
.visual-service-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:4px; }
.visual-service-photo figcaption { color:#c4d0d8; font:14px/1.5 Arial,sans-serif; padding-top:12px; }
.visual-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-top:40px; }
.visual-system .visual-contact-grid h2 { font:700 24px/1.3 Arial,sans-serif; margin:0 0 20px; }
.visual-system .visual-contact-grid p { font:18px/1.6 Arial,sans-serif; margin:0 0 20px; }
.visual-contact-phone { display:block; width:fit-content; font:700 clamp(24px,3vw,32px)/1.5 Arial,sans-serif; margin:8px 0; }
.visual-contact-email { display:inline-block; margin:12px 0; font-size:18px; }
.visual-system .visual-contact-grid .visual-contact-note { font-size:15px; color:#c4d0d8; margin-top:16px; }
/* Keep the brand face for large display headings, use the reading face for UI. */
.visual-system #allrecords .t-text,.visual-system #allrecords .t-descr { font-family:Arial,sans-serif!important; font-size:clamp(17px,1.3vw,18px)!important; font-weight:400!important; line-height:1.65!important; }
.visual-system #allrecords .t-name,.visual-system #allrecords .t-heading,.visual-system #allrecords .t-card__title { font-family:Arial,sans-serif!important; font-weight:700!important; line-height:1.3!important; }
.visual-system #allrecords .t-card__title { font-size:20px!important; }
.visual-system #allrecords .t-card__descr { font:16px/1.5 Arial,sans-serif!important; }
.visual-system #allrecords .t-title:not(h1) { font:700 clamp(28px,3vw,40px)/1.2 Arial,sans-serif!important; }
.visual-system #allrecords h1.t-title { font-size:clamp(38px,5vw,64px)!important; line-height:1.12!important; }
html.local-page-portfolio .visual-system #allrecords h1.t-title { font-family:Arial,sans-serif!important; font-size:clamp(34px,4vw,56px)!important; }
.visual-system #allrecords .t-btnflex__text { font:700 16px/1.4 Arial,sans-serif!important; }
.visual-system #allrecords .t-btnflex { min-height:48px!important; border-radius:4px!important; }
.visual-system .local-page-heading { padding:56px 24px; }
.visual-system #allrecords .t694__textwrapper__content { padding:24px; }
.visual-system #allrecords .t694__img { display:none; }
.visual-system #allrecords .t694__overlay { background:linear-gradient(0deg,#000b,#0003)!important; }
.visual-system #allrecords .t694__inner-wrapper { max-width:360px; margin:auto; }
.visual-system #allrecords .t694__cell { position:relative; }
.visual-system #allrecords .t694__textwrapper { position:absolute; inset:0; display:flex; align-items:flex-end; height:100%; }
.visual-system #allrecords .t694__textwrapper__content { width:100%; }
.visual-system .local-work-gallery { max-width:1208px; padding:40px 24px 64px; }
.visual-system .local-work-gallery h2 { font:700 34px/1.2 Arial,sans-serif; }
.visual-system .local-work-gallery__grid { gap:24px; }
.visual-system .t-animate, .visual-system .r_hidden { opacity:1!important; transform:none!important; }
.visual-system .t-zoomer__ui-item { opacity:1!important; }
.visual-system .t-zoomer__close { min-width:44px; min-height:44px; }
.visual-system .visual-mini-nav { display:none; }
.visual-system .t-rec_pt_15 { padding-top:16px!important; }
.visual-system .t-rec_pb_15 { padding-bottom:16px!important; }
.visual-system .t-rec_pt_30 { padding-top:32px!important; }
.visual-system .t-rec_pb_30 { padding-bottom:32px!important; }
.visual-system .t-rec_pt_45 { padding-top:48px!important; }
.visual-system .t-rec_pb_45 { padding-bottom:48px!important; }
.visual-system .t-rec_pt_60 { padding-top:64px!important; }
.visual-system .t-rec_pb_60 { padding-bottom:64px!important; }
@media(max-width:1099px) {
  .visual-system .service-desktop-nav { display:none; }
  .visual-system .service-mobile-nav { display:block; position:static; }
  .visual-system .site-header { min-height:72px; padding:10px 20px; }
  .visual-system .site-header img { width:120px; height:48px; }
  .visual-system .service-layout { grid-template-columns:minmax(0,1fr); gap:32px; padding-top:40px; }
  .visual-system .service-layout > .service-aside,.visual-system .service-layout > .local-article-record { grid-column:1; grid-row:auto; }
  .visual-system .service-layout > .service-aside { position:static; padding:16px 20px; }
  .visual-system .visual-toc ol { columns:2; column-gap:32px; }
  .visual-system .visual-toc li { break-inside:avoid; }
  .visual-service-opening { gap:32px; }
  .visual-system .visual-brand-hero { min-height:520px; }
}
@media(min-width:640px) and (max-width:980px) {
  .visual-system #allrecords .t694__container { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:2px; }
  .visual-system #allrecords .t694__row { display:contents!important; }
  .visual-system #allrecords .t694__col { display:block!important; width:auto!important; padding:0!important; margin:0!important; border:0!important; }
  .visual-system #allrecords .t694__table { display:block!important; width:100%; height:100%!important; }
  .visual-system #allrecords .t694__cell { display:block!important; position:relative; width:100%!important; height:auto!important; margin:0!important; aspect-ratio:4/3; }
  .visual-system #allrecords .t694__textwrapper { height:100%!important; }
}
@media(max-width:800px) {
  .visual-service-opening { grid-template-columns:1fr; }
  .visual-service-photo { margin:0; max-width:640px; }
  .visual-service-photo img { max-height:320px; }
  .visual-system .service-actions a { width:auto; }
  .visual-contact-grid { gap:32px; }
  .visual-system .site-footer { gap:32px; grid-template-columns:1fr 1fr; }
  .visual-system .site-footer > div:first-child { grid-column:1/-1; }
}
@media(max-width:639px) {
  .visual-system { font-size:17px; }
  .visual-system [id] { scroll-margin-top:92px; }
  .visual-system .visual-brand-hero { min-height:500px; height:auto; padding:56px 20px; }
  .visual-system .visual-brand-hero h1 { font-size:44px; }
  .visual-system .visual-brand-hero p { font-size:18px; }
  .visual-brand-hero__image { object-position:58% center; }
  .visual-system .visual-brand-hero::after { background:linear-gradient(0deg,#000b,#0006); }
  .visual-actions { gap:12px; }
  .visual-actions .visual-button { width:100%; }
  .visual-system .service-hero { padding:24px 20px 40px; }
  .visual-system .service-hero h1,.visual-system .visual-service-opening h1 { font-size:34px; line-height:1.12; }
  .visual-system .service-intro { font-size:18px; }
  .visual-system .service-actions { gap:12px; margin-top:24px; }
  .visual-system .service-actions a { width:100%; }
  .visual-system .service-layout { padding:32px 20px 40px; gap:28px; }
  .visual-system .local-seo-article { padding:40px 20px; font-size:17px; }
  .visual-system .local-seo-article h2 { font-size:28px; margin:36px 0 16px; }
  .visual-system .local-seo-article h3 { font-size:22px; }
  .visual-system .local-seo-article details { padding:16px; }
  .visual-system .service-related { padding:0 20px 40px; }
  .visual-system .service-related h2 { font-size:28px; }
  .visual-system .service-related-list { gap:16px; }
  .visual-system .service-related-list a { padding:20px; }
  .visual-system .mini-discovery { padding:40px 20px; }
  .visual-system .mini-discovery h2 { font-size:28px; }
  .visual-system .editorial-grid,.visual-system .mini-service-grid { grid-template-columns:1fr; gap:16px; }
  .visual-system .editorial-card,.visual-system .mini-service-entry { padding:20px; }
  .visual-system .visual-toc ol { columns:1; }
  .visual-system #allrecords .t694__cell { height:270px!important; }
  .visual-system #allrecords .t694__textwrapper { height:100%!important; }
  .visual-system #allrecords .t694__textwrapper__content { padding:20px; }
  .visual-system .local-work-gallery { padding:32px 20px 40px; }
  .visual-system .local-work-gallery h2 { font-size:28px; }
  .visual-system .site-footer { grid-template-columns:1fr; padding:40px 20px; gap:32px; }
  .visual-system .site-footer > div:first-child { grid-column:auto; }
  .visual-contact-grid { grid-template-columns:1fr; gap:32px; margin-top:32px; }
  .visual-system .t-rec_pt_60,.visual-system .t-rec_pt_45 { padding-top:40px!important; }
  .visual-system .t-rec_pb_60,.visual-system .t-rec_pb_45 { padding-bottom:40px!important; }
}
@media(max-width:1099px) {
  .visual-system.visual-mini { padding-bottom:calc(64px + env(safe-area-inset-bottom,0px)); }
  .visual-system .visual-mini-nav { display:flex; position:fixed; z-index:990; bottom:0; left:0; right:0; padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--border); gap:4px; justify-content:space-around; }
  .visual-system .visual-mini-nav a { display:flex; justify-content:center; align-items:center; min-height:48px; padding:8px; color:var(--link)!important; font:700 14px/1.4 Arial,sans-serif; text-decoration:none; border-radius:4px; }
  .visual-system .visual-mini-nav a[aria-current] { background:#e7f0f5; }
}

/* Editorial photos retain their full subject and captions on narrow screens. */
.editorial-page-photo{max-width:960px;margin:32px auto 48px;padding:0 24px;box-sizing:border-box}
.editorial-page-photo img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;border-radius:16px;background:#f4f4f4}
.editorial-page-photo figcaption{font-size:14px;line-height:1.55;color:#626262;margin-top:12px}
@media(max-width:760px){.editorial-page-photo{margin:24px auto 32px;padding:0 16px}}

/* Editorial system: consistent reading rhythm and task-led pilot pages. */
.visual-system { --reading:70ch; --accent:#a72f27; }
.visual-system .local-seo-article p,.visual-system .local-seo-article li { overflow-wrap:break-word; }
.visual-system .local-seo-article > p { max-width:var(--reading); }
.visual-system .local-seo-article h2,.visual-system .local-seo-article h3 { text-wrap:balance; }
.visual-system .editorial-card { border-radius:8px; border:1px solid var(--border); transition:border-color .15s ease,background-color .15s ease; }
.visual-system .editorial-card:hover { border-color:var(--accent); background:#fff; }
.visual-system .editorial-card strong { line-height:1.3; }
.visual-system .editorial-next { margin:40px 0; padding:24px; border-left:3px solid var(--accent); background:var(--surface); }
.visual-system .editorial-next h3 { margin:0 0 12px; }
.visual-system .editorial-next p { margin-bottom:16px; }
.visual-system .editorial-next > a { display:inline-flex; align-items:center; min-height:44px; font-weight:700; }
.visual-system .editorial-discovery { padding:48px max(24px,calc((100% - var(--content))/2)); background:#f4f6f8; }
.visual-system .editorial-discovery h2 { font:700 clamp(26px,3vw,36px)/1.2 Arial,sans-serif; margin:0 0 24px; letter-spacing:-.02em; }
.visual-system .editorial-discovery .editorial-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.visual-system .editorial-discovery .editorial-card { display:flex; flex-direction:column; padding:24px; gap:12px; background:#fff; text-decoration:none; color:var(--ink)!important; }
.visual-system .editorial-discovery .editorial-card strong { font-size:20px; }
.visual-system .editorial-discovery .editorial-card span { color:var(--muted); font-size:16px; line-height:1.55; }
.visual-system.editorial-pilot .visual-brand-hero { height:auto; min-height:540px; }
.visual-system.editorial-pilot .visual-brand-hero__copy { max-width:840px; }
.visual-system.editorial-pilot .visual-brand-hero h1 { text-wrap:balance; font-size:clamp(42px,5vw,68px); }
.visual-system .editorial-service-hero { background:var(--dark); color:#fff; padding:64px max(24px,calc((100% - var(--content))/2)); }
.visual-system .editorial-service-hero > div { max-width:860px; }
.visual-system .editorial-service-hero h1 { color:#fff; font:700 clamp(36px,5vw,60px)/1.08 ReformaGrotesk,Arial,sans-serif; text-transform:uppercase; margin:12px 0 24px; text-wrap:balance; }
.visual-system .editorial-service-hero p { max-width:65ch; font:20px/1.6 Arial,sans-serif; }
.visual-system .editorial-service-hero .editorial-kicker { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#d5dbe0; }
.visual-system .editorial-table-wrap { margin:24px 0 32px; overflow-x:auto; border:1px solid var(--border); border-radius:8px; }
.visual-system .editorial-table { width:100%; border-collapse:collapse; font-size:16px; line-height:1.55; text-align:left; }
.visual-system .editorial-table caption { padding:16px; font-weight:700; text-align:left; background:var(--surface); }
.visual-system .editorial-table th,.visual-system .editorial-table td { padding:16px; vertical-align:top; border-top:1px solid var(--border); }
.visual-system .editorial-table th { font-weight:700; }
.visual-system .editorial-table thead { background:var(--surface); }
.visual-system .editorial-table-wrap:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
@media(max-width:1000px) { .visual-system .editorial-discovery .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:639px) {
 .visual-system.editorial-pilot .visual-brand-hero { min-height:0; padding:44px 20px; }
 .visual-system.editorial-pilot .visual-brand-hero h1 { font-size:42px; }
 .visual-system .editorial-discovery { padding:32px 20px; }
 .visual-system .editorial-discovery .editorial-grid { grid-template-columns:1fr; gap:12px; }
 .visual-system .editorial-discovery .editorial-card { padding:20px; gap:8px; }
 .visual-system .editorial-service-hero { padding:40px 20px; }
 .visual-system .editorial-service-hero p { font-size:18px; }
 .visual-system .editorial-next { padding:20px; margin:32px 0; }
 .visual-system .editorial-table th,.visual-system .editorial-table td { padding:10px 8px; overflow-wrap:break-word; }
 .visual-system .editorial-table { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { .visual-system .editorial-card { transition:none; } }

/* Task lookup stays a semantic list without JavaScript. */
.visual-system .service-finder { max-width:1208px; margin:0 auto; padding:48px 24px; color:var(--ink); background:var(--paper); }
.visual-system .service-finder h2 { font:700 clamp(26px,3vw,36px)/1.2 Arial,sans-serif; margin:0 0 16px; }
.visual-system .service-finder p { margin:0 0 20px; max-width:72ch; }
.visual-system .service-finder-controls { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto; gap:16px; align-items:end; margin:24px 0 12px; }
.visual-system .service-finder-controls[hidden],.visual-system .service-finder [hidden] { display:none!important; }
.visual-system .service-finder label { display:block; font:700 16px/1.5 Arial,sans-serif; margin-bottom:8px; }
.visual-system .service-finder input,.visual-system .service-finder select { width:100%; min-height:48px; border:1px solid #71808c; border-radius:6px; padding:10px 12px; background:#fff; color:#20252b; font:18px/1.4 Arial,sans-serif; }
.visual-system .service-finder button { min-height:48px; padding:10px 18px; background:#20252b; color:#fff; border:1px solid #20252b; border-radius:6px; font:700 16px/1.4 Arial,sans-serif; cursor:pointer; }
.visual-system .service-finder input:focus-visible,.visual-system .service-finder select:focus-visible { outline:3px solid #a72f27; outline-offset:3px; }
.visual-system .service-finder .service-finder-note { font-size:14px; color:var(--muted); }
.visual-system .service-finder-status { min-height:26px; font-size:16px; }
.visual-system .service-finder-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; margin:16px 0 24px; list-style:none; }
.visual-system .service-finder-results li { margin:0; min-width:0; }
.visual-system .service-finder-results a { display:flex; height:100%; flex-direction:column; gap:8px; padding:20px; border:1px solid var(--border); border-radius:8px; color:var(--ink)!important; text-decoration:none; }
.visual-system .service-finder-results a:hover { border-color:var(--accent); background:var(--surface); }
.visual-system .service-finder-results strong { font:700 18px/1.4 Arial,sans-serif; }
.visual-system .service-finder-results span { font:14px/1.5 Arial,sans-serif; color:var(--muted); }
.visual-system .service-finder .service-finder-help { margin-top:24px; }
.visual-system .visual-contact-nav { display:none; }
/* Focus and in-page destinations remain clear of persistent header/footer controls. */
.visual-system :is(a,button,input,select,summary,[tabindex]) { scroll-margin-block:110px 90px; }
@media(max-width:800px) {
 .visual-system .service-finder-controls { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .visual-system .service-finder-controls > div:first-child { grid-column:1/-1; }
 .visual-system .service-finder-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:639px) {
 .visual-system .service-finder { padding:32px 20px; }
 .visual-system .service-finder-results { grid-template-columns:1fr; }
 .visual-system .service-finder-controls { grid-template-columns:minmax(0,1fr); gap:12px; }
 .visual-system .service-finder-results a { padding:16px; }
 .visual-system:has(.visual-contact-nav) { padding-bottom:calc(70px + env(safe-area-inset-bottom,0px)); }
 .visual-system .visual-contact-nav { display:flex; position:fixed; z-index:990; bottom:0; left:0; right:0; gap:8px; padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--border); }
 .visual-system .visual-contact-nav a { flex:1; display:flex; align-items:center; justify-content:center; min-height:48px; padding:8px; color:var(--ink)!important; font:700 16px/1.4 Arial,sans-serif; border:1px solid var(--border); border-radius:6px; text-decoration:none; }
 .visual-system .visual-contact-nav a:first-child { background:var(--dark); color:#fff!important; }
}
/* Free the viewport in landscape and when zoom leaves little vertical room. */
@media(max-height:500px) {
 .visual-system .site-header { position:relative; }
 .visual-system .visual-contact-nav,.visual-system .visual-mini-nav { display:none!important; }
 .visual-system.visual-mini,.visual-system:has(.visual-contact-nav) { padding-bottom:0; }
}

/* Search remains visible independently of the collapsed mobile menu. */
.visual-system .service-desktop-nav { margin-left:auto; }
.visual-system .header-search-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; flex-shrink:0; min-height:48px; padding:10px 12px; border:1px solid #6c7782; border-radius:6px; font-weight:600; }
.visual-system .header-search-link svg { flex-shrink:0; }
@media(max-width:1099px) {
 .visual-system .header-search-link { margin-left:auto; }
 .visual-system .site-header { gap:12px; }
}
@media(max-width:399px) {
 .visual-system .site-header { gap:8px; padding-inline:12px; }
 .visual-system .site-header img { width:100px; height:44px; }
 .visual-system .header-search-link { gap:6px; padding-inline:8px; }
 .visual-system .service-mobile-nav summary { padding-inline:6px; }
 .visual-system .service-mobile-nav summary::before { margin-right:6px; }
}

/* Owner tools use native disclosures and ordinary links; no widget dependencies. */
.visual-system .owner-panel { max-width:1208px; margin:0 auto; padding:56px 24px; color:var(--ink); background:#fff; font:18px/1.6 Arial,sans-serif; }
.visual-system .owner-panel h2 { font:700 clamp(28px,3vw,38px)/1.2 Arial,sans-serif; margin:0 0 20px; }
.visual-system .owner-panel p { margin:16px 0; max-width:850px; }
.visual-system .owner-panel a { color:var(--link)!important; }
.visual-system .owner-panel details { border:1px solid var(--border); border-radius:8px; padding:16px 20px; margin-bottom:12px; }
.visual-system .owner-panel summary { cursor:pointer; font-weight:700; min-height:44px; padding:8px 0; }
.visual-system .owner-panel li { margin-bottom:12px; }
.visual-system .owner-task-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.visual-system .owner-task-grid details { margin:0; }
.visual-system .owner-panel select { display:block; width:100%; max-width:800px; min-height:52px; margin-top:8px; font:16px Arial,sans-serif; padding:12px; color:var(--ink); background:white; border:1px solid #687681; border-radius:6px; }
.visual-system .owner-panel label { font-weight:700; }
.visual-system .owner-mini-controls { margin:24px 0; }
.visual-system .owner-model-services { display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; padding-left:24px; }
.visual-system .owner-model-services p { font-size:16px; margin:6px 0; }
.visual-system .owner-table-wrap { overflow-x:auto; }
.visual-system .owner-panel table { width:100%; border-collapse:collapse; font-size:16px; text-align:left; }
.visual-system .owner-panel caption { text-align:left; font-weight:700; padding:12px 0; }
.visual-system .owner-panel th,.visual-system .owner-panel td { border-bottom:1px solid var(--border); vertical-align:top; padding:14px 12px; min-width:140px; }
.visual-system .owner-panel thead { background:var(--surface); }
.visual-system .owner-actions,.visual-system .owner-photo-controls,.visual-system .service-suggestions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:20px 0; }
.visual-system .owner-panel button,.visual-system .owner-actions a,.visual-system .service-suggestions button { min-height:48px; padding:10px 16px; font:700 16px/1.4 Arial,sans-serif; border:1px solid #687681; border-radius:6px; color:var(--ink)!important; background:#fff; cursor:pointer; }
.visual-system .owner-panel button[aria-pressed=true] { background:var(--dark); color:white!important; }
.visual-system .owner-photo-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.visual-system .owner-photo-pair.is-single { grid-template-columns:1fr; }
.visual-system .owner-photo-pair figure { margin:0; }
.visual-system .owner-photo-pair img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.visual-system .owner-photo-pair figcaption { margin-top:8px; font-weight:700; }
.visual-system .owner-panel [hidden],.visual-system .service-suggestions[hidden] { display:none!important; }
.visual-system .owner-panel :focus-visible { outline:3px solid #a33925; outline-offset:3px; }
@media(max-width:639px) {
 .visual-system .owner-panel { padding:36px 20px; }
 .visual-system .owner-task-grid,.visual-system .owner-model-services,.visual-system .owner-photo-pair { grid-template-columns:1fr; }
 .visual-system .owner-panel details { padding:12px 16px; }
 .visual-system .owner-panel table { font-size:15px; }
}
