/* JH Memory product page. Existing site tokens and typography remain authoritative. */
.memory-skip{position:fixed;top:8px;left:16px;z-index:100;background:var(--paper);padding:12px 18px;transform:translateY(-180%)}
.memory-skip:focus{transform:none}
.memory-hero{overflow:hidden}
header.memory-hero{padding:142px 0 70px}
.memory-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:center}
header.memory-hero h1{font-size:clamp(44px,5.6vw,72px);max-width:13ch;overflow-wrap:normal}
.memory-intro .hero-sub{max-width:46ch;font-size:18px;margin:26px 0 30px}
.memory-intro .cta-note{font-size:12px;max-width:none}
.memory-object{margin:0;min-width:0;position:relative}
.memory-object img{width:100%;height:auto;filter:drop-shadow(0 28px 22px rgba(61,45,124,.06))}
.memory-object figcaption{display:flex;justify-content:center;gap:16px;font-size:12px;color:var(--muted);margin-top:-12px}
.memory-object figcaption span:first-child{color:var(--ink);font-weight:600;border-right:1px solid var(--line-2);padding-right:16px}
.memory-context{background:var(--paper-2);padding:38px 0;border-bottom:1px solid var(--line)}
.memory-context-grid{display:grid;grid-template-columns:.55fr 1fr 1.2fr;gap:32px;align-items:center}
.memory-context .eyebrow{margin:0;font-size:11px}
.memory-context p:nth-child(2){font-family:var(--font-head);font-size:24px;line-height:1.3;letter-spacing:-.02em}
.memory-context p:last-child{font-size:15px;color:var(--ink-2);max-width:46ch}
.memory-examples{scroll-margin-top:68px}
.memory-examples .sec-head{max-width:700px;margin-bottom:30px}
.memory-demo-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.memory-demo-nav[hidden],.memory-example[hidden]{display:none}
.memory-demo-nav button{cursor:pointer;background:var(--paper);border:1px solid var(--line-2);border-radius:999px;padding:12px 18px;color:var(--ink-2);font-size:14px;transition:background .2s,color .2s}
.memory-demo-nav button[aria-pressed=true]{background:var(--accent-soft);border-color:#d4ccff;color:var(--accent-ink)}
.memory-demo-nav button:hover{border-color:var(--accent)}
.memory-demo{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper)}
.memory-demo-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 30px;border-bottom:1px solid var(--line);background:var(--paper-2)}
.memory-demo-brand{font:600 22px var(--font-head);letter-spacing:-.03em}
.memory-demo-brand span{font:400 12px var(--font-body);color:var(--muted);border-left:1px solid var(--line-2);margin-left:14px;padding-left:16px;letter-spacing:0}
.memory-demo-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.memory-example{display:grid;grid-template-columns:1.15fr 1fr;min-height:350px}
.memory-record{padding:36px 38px;display:flex;align-items:flex-start;flex-direction:column}
.memory-breadcrumb{font-size:12px;color:var(--muted);margin-bottom:24px}
.memory-breadcrumb span{color:var(--line-2);margin:0 10px}
.memory-type{font-size:11px;letter-spacing:.02em;color:var(--accent-ink);padding:4px 10px;border-radius:999px;background:var(--accent-soft);margin-bottom:15px}
.memory-record h3{font-size:27px;line-height:1.15;margin-bottom:16px}
.memory-record>p:not(.memory-breadcrumb){font-size:15px;line-height:1.7;color:var(--ink-2);max-width:49ch}
.memory-record-footer{margin-top:auto;padding-top:24px;display:flex;gap:10px 20px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.memory-use{padding:38px;background:#fbfafc;border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.memory-use .eyebrow{font-size:10px;margin-bottom:22px}
.memory-use .memory-quote{font:500 26px/1.25 var(--font-head);letter-spacing:-.015em;color:var(--ink);margin-bottom:20px}
.memory-use p:not(.eyebrow):not(.memory-quote){font-size:14px;line-height:1.7;color:var(--ink-2)}
.memory-use a{font-size:13px;margin-top:24px}
.memory-caption{font-size:12px;color:var(--muted);max-width:90ch;margin-top:20px}
.memory-knowledge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 32px}
.memory-note{border-left:1px solid var(--line-2);padding-left:22px}
.memory-number{font-size:12px;color:var(--accent);display:block;margin-bottom:12px}
.memory-note h3{font-size:23px;margin-bottom:10px}
.memory-note p{font-size:15px;color:var(--ink-2);max-width:32ch}
.memory-boundary{border-top:1px solid var(--line-2);margin-top:48px;padding-top:26px;font-size:15px;color:var(--ink-2)}
.memory-boundary p{max-width:88ch}
.memory-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.memory-steps li{border-top:1px solid var(--line-2);padding-top:20px}
.memory-step-number{display:block;font:500 32px var(--font-head);color:var(--accent);margin-bottom:22px}
.memory-steps h3{font-size:24px;line-height:1.18;margin-bottom:14px;max-width:22ch}
.memory-steps p{font-size:15px;line-height:1.7;color:var(--ink-2)}
.memory-guide-link{display:inline-block;margin-top:36px;font-size:14px}
.memory-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.memory-control-grid .sec-head{margin:0;max-width:450px}
.memory-controls article{padding:22px 0;border-top:1px solid var(--line-2)}
.memory-controls article:first-child{padding-top:0;border-top:0}
.memory-controls h3{font-size:22px;margin-bottom:8px}
.memory-controls p{font-size:15px;color:var(--ink-2)}
.memory-faq details{border-top:1px solid var(--line);padding:24px 0}
.memory-faq details:last-child{border-bottom:1px solid var(--line)}
.memory-faq summary{display:flex;justify-content:space-between;align-items:center;gap:22px;cursor:pointer;list-style:none;font:500 20px/1.4 var(--font-head);color:var(--ink)}
.memory-faq summary::-webkit-details-marker{display:none}
.memory-faq summary::after{display:none}
.memory-faq summary span{font:400 24px var(--font-body);color:var(--accent);transition:transform .2s;flex-shrink:0}
.memory-faq details[open] summary span{transform:rotate(45deg)}
.memory-faq details p{margin:18px 34px 0 0;color:var(--ink-2);font-size:15px;line-height:1.75}
.memory-final-grid{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:80px}
.memory-final h2{max-width:19ch}
.memory-final p:not(.eyebrow){margin-top:20px;color:var(--ink-2);font-size:17px;max-width:48ch}
.memory-final-actions{display:flex;align-items:flex-start;flex-direction:column;gap:16px}
.memory-legal{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.memory-home{border-bottom:1px solid var(--line);padding:80px 0}
.memory-home-grid{display:grid;grid-template-columns:1fr 260px;gap:48px;align-items:center}
.memory-home h2{max-width:23ch}
.memory-home p:not(.eyebrow){font-size:17px;color:var(--ink-2);max-width:62ch;margin:20px 0 26px}
.memory-home img{width:100%;height:auto}
/* One additional navigation item needs the existing mobile menu a little earlier. */
@media(max-width:1040px){nav.site .nav-links{display:none}nav.site .nav-cta{display:none}nav.site .menu-btn{display:flex}}
@media(max-width:860px){
  header.memory-hero{padding:118px 0 54px}
  .memory-hero-grid{grid-template-columns:1fr;gap:12px}
  header.memory-hero h1{font-size:clamp(42px,8vw,66px);max-width:16ch}
  .memory-intro .hero-sub{max-width:55ch}
  .memory-object{max-width:430px;width:100%;justify-self:center}
  .memory-object figcaption{margin-top:-10px}
  .memory-context-grid{grid-template-columns:1fr 1fr;gap:18px 28px}
  .memory-context .eyebrow{grid-column:1/-1}
  .memory-example{grid-template-columns:1fr}
  .memory-use{border-left:0;border-top:1px solid var(--line)}
  .memory-knowledge-grid{grid-template-columns:1fr 1fr;gap:32px 24px}
  .memory-steps{grid-template-columns:1fr;gap:28px}
  .memory-steps h3{max-width:none}
  .memory-step-number{margin-bottom:12px}
  .memory-control-grid,.memory-final-grid{grid-template-columns:1fr;gap:40px}
  .memory-final h2{max-width:24ch}
  .memory-home-grid{grid-template-columns:1fr 190px;gap:24px}
}
@media(max-width:540px){
  header.memory-hero h1{font-size:clamp(30px,9.4vw,50px);max-width:100%}
  .memory-intro .hero-sub{font-size:17px}
  .memory-intro .cta-note{font-size:11px;max-width:32ch}
  .memory-intro .btn-row{align-items:stretch;flex-direction:column}
  .memory-intro .btn{font-size:14px;padding:14px 18px}
  .memory-object{max-width:320px;margin-top:8px}
  .memory-context-grid{grid-template-columns:1fr;gap:18px}
  .memory-context p:last-child{max-width:none}
  .memory-demo-nav{gap:6px}
  .memory-demo-nav button{font-size:12px;padding:10px 13px}
  .memory-demo-top{padding:18px 22px;align-items:flex-start}
  .memory-demo-brand span{display:block;border:0;margin:6px 0 0;padding:0}
  .memory-demo-label{font-size:9px;padding-top:5px}
  .memory-record,.memory-use{padding:26px 22px}
  .memory-record h3{font-size:25px}
  .memory-record-footer{gap:4px 12px}
  .memory-knowledge-grid{grid-template-columns:1fr}
  .memory-note p{max-width:none}
  .memory-final-actions .btn{white-space:normal;text-align:center;width:100%;font-size:14px;padding:14px 20px}
  .memory-home-grid{grid-template-columns:1fr}
  .memory-home img{width:190px;grid-row:1;justify-self:center}
}
@media(prefers-reduced-motion:reduce){.memory-demo-nav button,.memory-faq summary span{transition:none}}
