:root { --site-shell-height: 78px; }
main h1, main h2 { text-wrap: balance; }
main p { text-wrap: pretty; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 2px solid #2454f4; outline-offset: 4px; }
.model-directory { margin: 32px var(--gutter) 64px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.model-directory summary { padding: 22px 0; font-size: 18px; font-weight: 600; cursor: pointer; }
.model-directory-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 0 28px; padding-bottom: 24px; }
.model-directory-grid a { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 14px 0; min-height: 48px; border-bottom: 1px solid var(--line); text-decoration: underline; text-underline-offset: 4px; font-size: 14px; line-height: 1.45; }
.model-directory-pages { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 24px; }
.model-directory-pages a { padding: 12px; border: 1px solid var(--line); text-decoration: underline; text-underline-offset: 3px; }
html.site-shell-menu-open { overflow: hidden; }
.site-shell-header {
  position: sticky;
  inset: 0 0 auto;
  z-index: 40;
  width: 100%;
  height: var(--site-shell-height);
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: clamp(16px,2vw,32px);
  padding: 0 var(--gutter);
  border-bottom: 1px solid var(--line);
  background: rgba(242,244,241,.96);
  color: var(--ink);
  backdrop-filter: blur(14px);
  transition: height .25s, color .25s, background .25s, border-color .25s;
}
.site-shell-header.is-home-shell { position: fixed; background: transparent; color: var(--white); border-bottom-color: rgba(255,255,255,.32); backdrop-filter: none; }
.site-shell-header.is-home-shell.is-scrolled { height: 66px; background: rgba(242,244,241,.95); color: var(--ink); border-bottom-color: var(--line); backdrop-filter: blur(14px); }
.pdp .site-shell-header,.insights-page .site-shell-header,.article-page .site-shell-header { height:var(--site-shell-height); background:rgba(242,244,241,.96); color:var(--ink); border-bottom-color:var(--line); }
.site-shell-brand { display: inline-flex; align-items: center; width: max-content; }
.site-shell-brand img { width: auto; max-width:190px; height: 48px; object-fit: contain; }
.site-shell-header.is-home-shell:not(.is-scrolled) .site-shell-brand img { filter: brightness(0) invert(1); }
.site-shell-nav { display: flex; align-items: center; justify-content: center; gap: clamp(22px,2.2vw,36px); font-size: 13px; }
.site-shell-nav a,.site-shell-nav>button { position: relative; padding: 10px 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; white-space: nowrap; }
.site-shell-nav a::after,.site-shell-nav>button:not(.site-shell-mobile-project)::after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:currentColor; transition:right .2s; }
.site-shell-nav a:hover::after,.site-shell-nav a.is-active::after,.site-shell-nav>button:not(.site-shell-mobile-project):hover::after { right:0; }
.site-shell-header .header-actions { position:static; transform:none; display:flex; align-items:center; justify-self:end; gap:10px; min-width:0; }
.site-shell-header .project-location-trigger { min-width:0; flex:0 1 auto; }
.site-shell-header .project-location-trigger>span:first-of-type { display:none; }
.site-shell-header .project-location-trigger strong { max-width:clamp(120px,12vw,190px); }
.site-shell-header .cart-trigger { flex-shrink:0; }
.site-shell-project { min-height:44px; padding:10px 14px; border:1px solid currentColor; background:transparent; color:inherit; font-size:13px; cursor:pointer; white-space:nowrap; }
.site-shell-project:hover { background:var(--ink); border-color:var(--ink); color:var(--white); }
.site-shell-header.is-home-shell:not(.is-scrolled) .site-shell-project:hover { background:var(--white); border-color:var(--white); color:var(--ink); }
.site-shell-mobile-project,.site-shell-menu-toggle { display:none; }
.site-shell-menu-toggle { width:42px; height:42px; flex:0 0 42px; padding:11px; border:1px solid currentColor; background:transparent; color:inherit; cursor:pointer; }
.site-shell-menu-toggle span { display:block; height:1px; background:currentColor; transition:transform .2s,opacity .2s; }
.site-shell-menu-toggle span+span { margin-top:7px; }
.site-shell-menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
.site-shell-menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }

.site-shell-footer {
  display:grid;
  grid-template-columns:minmax(240px,1.2fr) minmax(270px,.9fr) minmax(240px,.9fr);
  gap:clamp(36px,6vw,90px);
  align-items:start;
  min-height:300px;
  padding:64px var(--gutter) 30px;
  background:var(--ink);
  color:var(--white);
}
.site-shell-footer-brand img { width:auto; height:58px; filter:brightness(0) invert(1); }
.site-shell-footer-brand p { margin:22px 0 0; color:#aeb5b1; font-size:17px; line-height:1.5; }
.site-shell-footer-nav { display:grid; gap:0; border-top:1px solid #4c534f; }
.site-shell-footer-nav a,.site-shell-footer-nav button { min-height:45px; padding:0; border:0; border-bottom:1px solid #4c534f; background:transparent; color:inherit; font:600 13px/1 var(--body); text-align:left; cursor:pointer; }
.site-shell-footer-nav a { display:flex; align-items:center; }
.site-shell-footer-nav a:hover,.site-shell-footer-nav button:hover { color:var(--signal); }
.site-shell-footer-action p { margin:0 0 14px; color:#aeb5b1; font-size:14px; }
.site-shell-footer-action button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; padding:0 18px; border:0; background:var(--signal); color:var(--ink); font:700 14px/1 var(--body); cursor:pointer; }
.site-shell-footer-note { grid-column:1/-1; align-self:end; margin:30px 0 0; padding-top:22px; border-top:1px solid #4c534f; color:#7f8883; font-size:11px; letter-spacing:.04em; }

.site-shell-project-dialog { width:min(640px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; overflow:auto; border:0; border-top:5px solid var(--signal); border-radius:0; background:var(--white); color:var(--ink); box-shadow:0 28px 90px rgba(0,0,0,.28); }
.site-shell-project-dialog::backdrop { background:rgba(11,15,13,.66); backdrop-filter:blur(7px); }
.site-shell-project-dialog .project-dialog-form { margin:0; }
.site-shell-project-dialog .project-dialog-head { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 18px; border-bottom:1px solid var(--line); }
.site-shell-project-dialog .project-dialog-head p { margin:0; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.site-shell-project-dialog .project-dialog-head button { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:25px; cursor:pointer; }
.site-shell-project-dialog .project-dialog-head button:hover { background:var(--ink); color:var(--white); }
.site-shell-project-dialog .project-dialog-body { display:grid; gap:22px; padding:30px 34px 34px; }
.site-shell-project-dialog .project-dialog-intro h2 { margin:0; font:500 clamp(38px,5vw,58px)/.96 var(--display); letter-spacing:-.055em; }
.site-shell-project-dialog .project-dialog-intro p { margin:14px 0 0; color:var(--muted); font-size:16px; line-height:1.5; }
.site-shell-project-dialog .project-field { display:grid; gap:9px; }
.site-shell-project-dialog .project-field>span { font-size:13px; font-weight:700; }
.site-shell-project-dialog .project-field textarea,.site-shell-project-dialog .project-field input { width:100%; border:1px solid var(--steel); border-radius:0; background:var(--paper); color:var(--ink); font:400 16px/1.45 var(--body); }
.site-shell-project-dialog .project-field textarea { min-height:128px; padding:15px 16px; resize:vertical; }
.site-shell-project-dialog .project-field input { height:54px; padding:0 16px; }
.site-shell-project-dialog .project-field textarea:focus,.site-shell-project-dialog .project-field input:focus { outline:0; border-color:var(--ink); background:var(--white); }
.site-shell-project-dialog .project-promise { display:grid; grid-template-columns:30px 1fr; align-items:center; gap:14px; padding:15px 17px; background:#fbf5df; }
.site-shell-project-dialog .project-promise>span { position:relative; width:26px; height:26px; border:1px solid var(--ink); border-radius:50%; }
.site-shell-project-dialog .project-promise>span::before { content:""; position:absolute; width:7px; height:11px; left:8px; top:5px; border:solid var(--ink); border-width:0 2px 2px 0; transform:rotate(45deg); }
.site-shell-project-dialog .project-promise p { margin:0; color:#535a56; font-size:14px; line-height:1.45; }
.site-shell-project-dialog .project-promise strong { color:var(--ink); }
.site-shell-project-dialog .project-submit { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; padding:0 20px; border:0; background:var(--signal); color:var(--ink); font-weight:700; cursor:pointer; }
.site-shell-project-dialog .project-form-status { margin:-4px 0 0; padding:12px 14px; border-left:3px solid var(--blue); background:#edf1ff; color:#27312c; font-size:13px; line-height:1.45; }

@media(max-width:1440px) {
  .site-shell-header { grid-template-columns:auto minmax(0,1fr) auto; gap:16px; }
  .site-shell-nav { gap:20px; }
  .site-shell-project { display:none; }
}
@media(max-width:1280px) {
  :root { --site-shell-height:64px; }
  .site-shell-header,.site-shell-header.is-home-shell,.site-shell-header.is-home-shell.is-scrolled { height:var(--site-shell-height); grid-template-columns:1fr auto; padding-inline:20px; }
  .site-shell-header.is-home-shell { background:rgba(21,25,23,.2); }
  .site-shell-header.is-home-shell.is-scrolled { background:rgba(242,244,241,.96); }
  .site-shell-brand img { height:42px; }
  .site-shell-header .header-actions { position:static; transform:none; gap:4px; }
  .site-shell-menu-toggle { display:block; }
  .site-shell-nav { position:fixed; z-index:39; inset:var(--site-shell-height) 0 auto; display:none; padding:10px 20px 22px; background:var(--paper); color:var(--ink); border-bottom:1px solid var(--ink); box-shadow:0 18px 40px rgba(21,25,23,.12); }
  .site-shell-nav.is-open { display:block; }
  .site-shell-nav { max-height:calc(100dvh - var(--site-shell-height)); overflow-y:auto; overscroll-behavior:contain; }
  .site-shell-nav a,.site-shell-nav>button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:54px; padding:14px 0; border-bottom:1px solid var(--line); text-align:left; font-size:18px; }
  .site-shell-nav a::after,.site-shell-nav>button::after { display:none; }
  .site-shell-mobile-project { margin-top:10px; padding:14px 16px!important; border:0!important; background:var(--signal)!important; color:var(--ink)!important; font-size:15px!important; font-weight:700!important; }
  .site-shell-mobile-project span { margin-left:auto; }
  .site-shell-footer { grid-template-columns:1fr 1fr; min-height:0; padding:50px 20px 26px; }
  .site-shell-footer-brand { grid-column:1/-1; }
}
.solutions-menu-panel[hidden] { display:none!important; }
.solutions-menu-panel { position:absolute; top:100%; left:0; right:0; padding:28px var(--gutter) 24px; color:var(--ink); background:var(--paper); border-bottom:1px solid var(--ink); box-shadow:0 24px 32px #15191718; max-height:calc(100dvh - 90px); overflow:auto; }
.solutions-menu-top,.solutions-menu-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.solutions-menu-top { padding-bottom:22px; border-bottom:1px solid var(--line); }
.solutions-menu-top strong { font-size:24px; font-weight:500; letter-spacing:-.04em; }
.solutions-menu-top p { margin:6px 0 0; color:var(--muted); font-size:14px; }
.solutions-menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px 40px; padding:24px 0; }
.solutions-menu-grid>div>p { margin:0 0 8px; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.site-shell-nav .solutions-menu-panel a { display:flex; gap:16px; justify-content:space-between; padding:9px 0; white-space:normal; font-size:14px; line-height:1.4; }
.site-shell-nav .solutions-menu-panel a::after { display:none; }
.site-shell-nav .solutions-menu-panel a:hover { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
.solutions-menu-bottom { border-top:1px solid var(--line); padding-top:14px; }
.solutions-menu-trigger span { margin-left:5px; }
.site-shell-nav>.solutions-menu-trigger.is-active::after { right:0; }
.product-solution-links { padding:52px var(--gutter); border-top:1px solid var(--line); background:var(--paper); }
.product-solution-links h2 { margin:0 0 12px; font-size:clamp(28px,3vw,40px); font-weight:500; letter-spacing:-.04em; }
.product-solution-links p { margin:0 0 24px; color:var(--muted); }
.product-solution-links nav { display:flex; gap:12px; flex-wrap:wrap; }
.product-solution-links a { padding:16px 20px; border:1px solid var(--line); background:white; font-size:15px; }
.product-solution-links a:hover { border-color:var(--ink); }
@media(max-width:1280px) {
  .solutions-menu-panel { position:static; padding:18px 0; box-shadow:none; max-height:none; overflow:visible; }
  .solutions-menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .solutions-menu-top strong { font-size:20px; }
  .site-shell-nav .solutions-menu-panel a { min-height:44px; }
}
@media(max-width:600px) {
  .solutions-menu-grid { grid-template-columns:1fr; gap:22px; }
  .solutions-menu-top,.solutions-menu-bottom { display:block; }
  .solutions-menu-top p { display:none; }
  .product-solution-links nav { display:grid; }
}
@media(max-width:520px) {
  .site-shell-header { padding-inline:14px; }
  .site-shell-brand img { height:36px; }
  .site-shell-project-dialog .project-dialog-head { padding:16px 20px 14px; }
  .site-shell-project-dialog .project-dialog-body { gap:18px; padding:24px 20px 24px; }
  .site-shell-project-dialog .project-dialog-intro h2 { font-size:38px; }
  .site-shell-footer { grid-template-columns:1fr; gap:32px; padding-inline:20px; }
  .site-shell-footer-brand { grid-column:auto; }
  .site-shell-footer-brand img { height:50px; }
  .site-shell-footer-brand p { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) {
  .site-shell-header,.site-shell-nav a::after,.site-shell-nav>button::after,.site-shell-menu-toggle span { transition:none; }
}
