/* Technical consulting and CAS-matched molecular structure presentation. */
.consulting-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.consulting-card { padding:32px; border:1px solid var(--line); border-radius:16px; background:white; display:flex; flex-direction:column; align-items:flex-start; }
.service-number { display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:12px; background:#e6f2f0; color:var(--teal); font-size:1.125rem; font-weight:650; margin-bottom:28px; font-variant-numeric:tabular-nums; }
.consulting-card .eyebrow { font-size:.6875rem; letter-spacing:.08em; margin-bottom:12px; }
.consulting-card h3 { margin:0 0 16px; font-size:1.375rem; }
.consulting-card p { color:var(--ink-soft); margin:0 0 28px; }
.consulting-card>.link { margin-top:auto; color:var(--teal); font-size:.875rem; font-weight:600; }
.consulting-card a:hover { text-decoration:underline; text-underline-offset:4px; }
.consulting-invite { background:var(--navy); color:white; justify-content:center; }
.consulting-invite .eyebrow,.consulting-invite>.link { color:#6ad4cc; }
.consulting-invite h3 { color:white; font-size:1.75rem; line-height:1.25; }
.consulting-invite p { color:#c5d3de; }
.consulting-invite>.link { margin:22px 0 0; }
.consulting-overview-note { margin-top:30px; max-width:850px; font-size:.9375rem; color:var(--ink-soft); }
.consulting-hero { border-bottom:6px solid var(--teal); }
.consulting-hero h1 { max-width:880px; }
.consulting-hero p { max-width:850px; }
.download-type { white-space:nowrap; opacity:.75; font-size:.75rem; margin-left:8px; }
.consulting-intro-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; }
.consulting-intro-grid h2 { margin-top:16px; }
.consulting-intro-grid p+p { margin-top:20px; }
.advisory-note { border-left:3px solid var(--teal); padding-left:22px; }
.consulting-scope { background:#eeefeb; }
.service-jump-links { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; }
.service-jump-links a { padding:9px 14px; background:white; border:1px solid var(--line); border-radius:6px; font-size:.8125rem; color:var(--navy); }
.service-jump-links a:hover { border-color:var(--teal); color:var(--teal); }
.service-details-list { display:grid; gap:28px; }
.service-detail-row { display:grid; grid-template-columns:1fr 1.55fr; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:white; scroll-margin-top:110px; }
.service-detail-heading { padding:36px; background:#f7f8f5; border-top:4px solid var(--teal); }
.service-detail-row:nth-child(even) .service-detail-heading { border-top-color:var(--copper,#b55320); }
.service-detail-heading h2 { font-size:1.5rem; margin:0 0 16px; }
.service-detail-heading>p { color:var(--ink-soft); }
.service-guidance { margin-top:28px; }
.service-guidance p { margin-top:6px; color:var(--ink-soft); font-size:.8125rem; line-height:1.6; }
.service-deliverables { padding:36px 40px; }
.service-deliverables h3 { font-size:1rem; margin-bottom:16px; }
.service-deliverables ul { display:grid; gap:14px; }
.service-deliverables li { position:relative; padding-left:20px; color:var(--ink-soft); font-size:.9375rem; }
.service-deliverables li:before { content:''; position:absolute; width:6px; height:6px; top:.6em; left:0; background:var(--teal); }
.service-deliverables .link { display:inline-block; margin-top:26px; color:var(--teal); font-weight:600; font-size:.875rem; }
.engagement-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.engagement-grid article { border-top:3px solid var(--navy); padding-top:24px; }
.engagement-grid h3 { margin:16px 0; }
.engagement-grid p { color:var(--ink-soft); }
.consulting-audience { margin-top:64px; }
.consulting-audience ul { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.consulting-audience li { border:1px solid var(--line); padding:10px 16px; border-radius:6px; font-size:.875rem; color:var(--navy); background:white; }
.consulting-values { background:#e9f1ee; }
.molecule-media { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:140px; background:#fff; border:1px solid #e5e9e7; border-radius:10px; margin:14px 0 20px; overflow:hidden; }
.molecule-media img { display:block; width:90%; height:100%; object-fit:contain; padding:10px; }
.molecule-placeholder { display:flex; height:100%; width:100%; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:24px; text-align:center; color:#63727c; background:#f6f8f7; }
.molecule-placeholder strong { font-family:var(--font-mono); font-size:.875rem; font-weight:500; }
.molecule-placeholder span { font-size:.8125rem; }
.prod-card .cas { order:0; }
.prod-card .molecule-media { flex:0 0 100px; width:100px; height:76px; margin:0; }
.prod-card .molecule-media img { width:100%; padding:5px; }
.prod-card .molecule-placeholder { gap:0; padding:6px; }
.prod-card .molecule-placeholder strong { display:none; }
.prod-card .molecule-placeholder span { font-size:10px; line-height:1.35; }
.product-card-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.product-card-identity { min-width:0; }
.prod-card .cas { margin:0 0 8px; overflow-wrap:anywhere; }
.product-category { display:inline-block; padding:3px 8px; border-radius:5px; background:#edf4f2; color:#37625c; font-size:11px; font-weight:600; }
.prod-card .name { flex:none; margin:0 0 14px; line-height:1.4; }
.product-card-facts { display:grid; gap:10px; margin:0 0 16px; }
.product-card-facts:empty { display:none; }
.product-card-facts>div { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:10px; align-items:baseline; }
.product-card-facts dt { font-size:11px; color:#64747d; line-height:1.5; }
.product-card-facts dd { margin:0; color:var(--ink); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.product-stock { margin-top:auto; padding-top:12px; border-top:1px dashed var(--line); }
.product-stock .badge { font-size:11px; }
.prod-card .product-actions { margin-top:12px; padding-top:12px; }
/* Shared by server-rendered cards and live search results. */
.prod-card {
  position:relative;
  transition:transform 480ms cubic-bezier(.2,.85,.25,1.2), box-shadow 360ms ease, border-color 240ms ease;
}
.prod-card .molecule-media { transition:border-color 280ms ease, box-shadow 280ms ease; }
.prod-card .molecule-media img { transition:transform 600ms cubic-bezier(.22,1.3,.36,1); }
.prod-card .molecule-media::after {
  content:''; position:absolute; inset:-25%; pointer-events:none; opacity:0;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);
  transform:translateX(-120%);
}
@keyframes product-sheen {
  0% { transform:translateX(-120%); opacity:0; }
  20% { opacity:.9; }
  100% { transform:translateX(120%); opacity:0; }
}
.prod-card .name a { transition:color 200ms ease; }
.prod-card .badge { transition:background-color 240ms ease, color 240ms ease; }
.prod-card .product-actions a { position:relative; padding-right:22px; text-decoration:none; }
.prod-card .product-actions a::before {
  content:''; position:absolute; right:0; top:calc(50% - 8px); width:16px; height:16px;
  background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:0; transform:translateX(-7px); transition:transform 300ms ease, opacity 220ms ease;
}
.prod-card .product-actions a::after {
  content:''; position:absolute; left:0; right:22px; bottom:-3px; height:2px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform 220ms ease;
}
.prod-card:focus-within {
  z-index:1; transform:translateY(-10px); border-color:var(--teal-light);
  box-shadow:0 24px 42px -12px rgba(0,0,0,.42), 0 0 22px rgba(65,198,193,.24);
}
.prod-card:focus-within .molecule-media { border-color:#80c9c0; box-shadow:0 0 0 3px rgba(13,134,130,.07); }
.prod-card:focus-within .molecule-media img { transform:scale(1.04); }
.prod-card:focus-within .name a { color:var(--teal); }
.prod-card:focus-within .badge { background:#dff3ef; color:#09645f; }
.prod-card:focus-within .product-actions a::before { opacity:1; transform:translateX(0); }
.prod-card .product-actions a:focus-visible::after { transform:scaleX(1); }
@media (hover:hover) and (pointer:fine) {
  .prod-card:hover {
    z-index:1; transform:translateY(-10px) rotate(-.7deg) scale(1.02); border-color:var(--teal-light);
    box-shadow:0 24px 42px -12px rgba(0,0,0,.42), 0 0 22px rgba(65,198,193,.24);
  }
  .prod-card:hover .molecule-media { border-color:#80c9c0; box-shadow:0 0 0 3px rgba(13,134,130,.07); }
  .prod-card:hover .molecule-media img { transform:scale(1.04); }
  .prod-card:hover .molecule-media::after { animation:product-sheen 850ms ease-out both; }
  .prod-card:hover .name a { color:var(--teal); }
  .prod-card:hover .badge { background:#dff3ef; color:#09645f; }
  .prod-card:hover .product-actions a::before { opacity:1; transform:translateX(0); transition-delay:80ms; }
  .prod-card .product-actions a:hover::before { transform:translateX(3px); }
  .prod-card .product-actions a:hover::after { transform:scaleX(1); }
}
@media (hover:none), (pointer:coarse) {
  .prod-card:hover,.prod-card:focus-within,.prod-card:focus-within .molecule-media img { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  .prod-card,.prod-card .molecule-media,.prod-card .molecule-media img,
  .prod-card .name a,.prod-card .badge,.prod-card .product-actions a::before,
  .prod-card .product-actions a::after { transition:none; }
  .prod-card:hover,.prod-card:focus-within,.prod-card:hover .molecule-media img,
  .prod-card:focus-within .molecule-media img { transform:none; }
  .prod-card:hover .molecule-media::after { animation:none; opacity:0; }
  .prod-card .product-actions a::before,.prod-card .product-actions a:hover::before { transform:none; }
}
.product-structure { width:160px; max-width:100%; }
.product-structure .molecule-media { height:120px; margin:0; }
.product-structure .molecule-placeholder { padding:12px; }
.product-structure .molecule-placeholder strong { font-size:.75rem; }
.product-detail-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:24px; align-items:start; }
.product-detail-grid>.panel { padding:28px; margin:0; }
.product-detail-grid h2 { font-size:1.375rem; margin:0 0 20px; }
.product-detail-grid .product-enquiry h2 { margin-top:16px; }
.product-info-content { display:grid; grid-template-columns:160px minmax(0,1fr); gap:24px; align-items:start; margin-bottom:20px; }
.product-detail-grid .facts { margin:0; }
.product-detail-grid .facts>div { grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:12px; padding:10px 0; }
.product-detail-grid .facts>div:first-child { padding-top:0; }
.product-detail-grid .facts dt { font-size:.8125rem; }
.product-detail-grid .panel>p { font-size:.9375rem; margin-bottom:0; }
.product-detail-grid .product-enquiry .btn { margin-top:24px; }
@media(max-width:1020px) {
  .product-detail-grid { grid-template-columns:1fr; }
}
@media(max-width:700px) {
  .product-detail-grid>.panel { padding:24px; }
  .product-info-content { grid-template-columns:1fr; gap:20px; }
}
@media(max-width:1000px) { .consulting-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .consulting-intro-grid { gap:36px; } .service-detail-row { grid-template-columns:1fr 1.3fr; } .service-detail-heading,.service-deliverables { padding:28px; } }
@media(max-width:700px) { .consulting-grid,.consulting-intro-grid,.service-detail-row,.engagement-grid { grid-template-columns:1fr; } .consulting-card { padding:28px; } .service-number { margin-bottom:20px; } .consulting-intro-grid { gap:24px; } .consulting-hero .button-row { align-items:stretch; flex-direction:column; } .consulting-hero .btn { width:100%; } .engagement-grid { gap:36px; } .service-jump-links a { font-size:.75rem; } }
