/* Editorial surfaces use the accepted black/white/blue visual language. */
.home-banners{border:1px solid var(--line);background:var(--surface)}
.home-banners-stage{position:relative;height:clamp(19rem,24vw,22rem);overflow:hidden}
.home-banner-slide{display:grid;grid-template-columns:minmax(0,.44fr) minmax(0,.56fr);height:100%}
.home-banner-slide[hidden]{display:none}
.home-banner-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:clamp(1.4rem,3vw,3rem);background:var(--ink);color:var(--surface)}
.home-banner-copy h2{max-width:13ch;margin:0 0 var(--space-3);font-family:var(--font-display);font-size:clamp(2rem,3.2vw,3.5rem);font-weight:600;letter-spacing:-.035em;line-height:1.16;text-wrap:balance;color:inherit}
.home-banner-copy p{max-width:38ch;margin:0 0 var(--space-5);font-size:clamp(.92rem,1.15vw,1.06rem);line-height:1.5;color:var(--on-dark-muted)}
.home-banner-copy .button{margin:0}
.home-banner-visual{position:relative;display:block;min-width:0;min-height:0;border-left:1px solid var(--line);background:var(--surface)}
.home-banner-slide.is-dark-photo .home-banner-copy,.home-banner-slide.is-dark-photo .home-banner-visual{background:#000}
.home-banner-slide.is-dark-photo .home-banner-visual{border-left-color:#000}
.home-banner-visual img{position:absolute;top:var(--space-3);right:var(--space-3);bottom:var(--space-3);left:var(--space-3);display:block;width:calc(100% - var(--space-3) - var(--space-3));height:calc(100% - var(--space-3) - var(--space-3));object-fit:contain}
.home-banner-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.home-banner-tab{position:relative;display:flex;align-items:center;min-height:3.35rem;min-width:0;padding:var(--space-2) var(--space-4);border:0;border-right:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink-muted);font:inherit;font-size:var(--font-small);font-weight:650;text-align:left;cursor:pointer}
.home-banner-tab:last-child{border-right:0}
.home-banner-tab:hover,.home-banner-tab.is-active{color:var(--ink)}
.home-banner-tab:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;z-index:1}
.home-banner-tab-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.home-banner-tab-track{position:absolute;right:0;bottom:0;left:0;height:2px;background:var(--line)}
.home-banner-tab.is-active .home-banner-tab-track{background:var(--action)}

.home-journal{margin-top:calc(var(--shop-section-gap) + var(--space-5))}
.home-brand-statement{margin:0 0 var(--space-4)}
.home-brand-statement p{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.7rem);font-weight:600;letter-spacing:-.03em;line-height:1.16;color:var(--ink)}
.home-brand-final{white-space:nowrap}
.home-brand-square{display:inline-block;width:.24em;height:.24em;margin-left:.1em;background:var(--action);vertical-align:baseline}
.journal-article .article-cover img{display:block;height:auto;max-height:none}
.memory-finder{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(17rem,.75fr);border:1px solid var(--ink);background:var(--surface)}
.memory-finder-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:clamp(1.5rem,3vw,3rem);background:var(--selection)}
.memory-finder h3{max-width:18ch;margin:0 0 var(--space-3);font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:500;letter-spacing:-.025em;line-height:1.22}
.memory-intro{max-width:54ch;margin:0 0 var(--space-5);line-height:1.55;color:var(--ink)}
.memory-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) var(--space-6);width:100%}
.memory-questions fieldset{min-width:0;margin:0;padding:var(--space-3) 0 0;border:0;border-top:1px solid var(--line)}
.memory-questions legend{margin:0 0 var(--space-2);padding:0;font-size:var(--font-small);font-weight:700;line-height:1.4}
.memory-questions label{display:flex;align-items:flex-start;gap:var(--space-2);min-height:1.8rem;padding:var(--space-1) 0;font-size:var(--font-small);line-height:1.4;cursor:pointer}
.memory-questions input{flex:none;width:1.05rem;height:1.05rem;margin:.12rem 0 0;accent-color:var(--action)}
.memory-questions label:has(input:checked){color:var(--action);font-weight:650}
.memory-feedback{max-width:55ch;min-height:2.8em;margin:var(--space-5) 0 var(--space-2);font-weight:700;line-height:1.5}
.memory-caveat{max-width:56ch;margin:0 0 var(--space-4);font-size:var(--font-small);line-height:1.5;color:var(--ink-muted)}
.memory-finder-copy .text-link{margin-top:auto;min-height:var(--touch);color:var(--action)}
.memory-finder-options{min-width:0;padding:clamp(1.5rem,2vw,2rem);border-left:1px solid var(--line)}
.memory-options-title{margin:0 0 var(--space-3);font-size:var(--font-small);font-weight:700}
.memory-capacities{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.memory-capacities li{border-bottom:1px solid var(--line)}
.memory-capacity{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:var(--space-2);min-height:var(--touch);padding:var(--space-3);text-decoration:none;color:var(--ink);outline-offset:-2px}
.memory-capacity:hover{background:var(--selection);color:var(--action)}
.memory-capacity.is-fit{background:var(--selection);box-shadow:inset 0 0 0 1px var(--action)}
.memory-capacity-name{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}
.memory-capacity-action{font-size:var(--font-small);color:var(--ink-muted);text-align:right}
.memory-capacity-count,.memory-capacity-fit{grid-column:1/-1;margin-top:var(--space-1);font-size:var(--font-small);line-height:1.35}
.memory-capacity-count{color:var(--ink-muted)}
.memory-capacity-fit{color:var(--action);font-weight:700}
.home-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin-top:var(--space-5)}
.home-guide-grid .journal-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:var(--space-4);min-width:0;padding:var(--space-4);border:1px solid var(--line)}
.journal-card-media{display:block;min-width:0;text-decoration:none}
.home-guide-grid .journal-card-media img{height:100%;min-height:9rem;max-height:13rem;width:100%;margin:0;border:0;object-fit:contain}
.journal-card-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.journal-card-body h2 a{text-decoration:none;color:inherit}
.journal-card-body h2 a:hover{color:var(--action)}
.journal-card-body .text-link{margin-top:auto}
.journal-grid .journal-card-media img{object-fit:contain}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.news-card{min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.news-card-media{display:block;height:11.5rem;min-width:0;padding:var(--space-3);border-bottom:1px solid var(--line);background:var(--surface);overflow:hidden}
.news-card-media img{display:block;width:100%;height:100%;object-fit:contain}
.news-card-copy{display:flex;flex-direction:column;align-items:flex-start;min-height:13rem;padding:var(--space-4)}
.news-card time{display:block;margin-bottom:var(--space-2);color:var(--ink-muted);font-size:var(--font-small)}
.news-card h3{margin:0 0 var(--space-2);font-family:var(--font-body);font-size:1.15rem;line-height:1.35}
.news-card h3 a{text-decoration:none;color:var(--ink)}
.news-card h3 a:hover{color:var(--action)}
.news-card p{margin:0 0 var(--space-4);color:var(--ink-muted);font-size:var(--font-small);line-height:1.55}
.news-card .text-link{margin-top:auto;color:var(--action)}
/* Buyer-facing editorial pages keep the full storefront width and a readable text measure. */
.store-editorial-title{margin-bottom:var(--space-6)}
.store-editorial-content{max-width:none}
.store-about p{margin:0}
.store-about p:empty{display:none}
.store-about-intro,.store-about-mission,.store-about-journal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);padding:var(--space-7) 0;border-top:1px solid var(--line)}
.store-about-intro{border-top-color:var(--ink)}
.store-about-lead{max-width:21ch;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}
.store-about-intro-copy{max-width:56ch;color:var(--ink-muted);font-size:1.0625rem;line-height:1.65}
.store-about-intro-copy p+p,.store-about-mission p+p{margin-top:var(--space-4)}
.store-about-mission h2,.store-about-journal h2{max-width:16ch;margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,2.2vw,2rem);font-weight:500;line-height:1.25;letter-spacing:-.02em}
.store-about-mission>div,.store-about-journal>div{max-width:60ch;line-height:1.65}
.store-about-mission-lead{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.35;letter-spacing:-.015em}
.store-about-mission p:last-child{color:var(--ink-muted)}
.store-about-benefits{padding:var(--space-7) 0;border-top:1px solid var(--line)}
.store-about-benefits-heading{display:flex;justify-content:space-between;align-items:end;gap:var(--space-5);margin-bottom:var(--space-5)}
.store-about-benefits-heading h2{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,2.2vw,2rem);font-weight:500;line-height:1.25;letter-spacing:-.02em}
.store-about-benefits-heading p{color:var(--ink-muted)}
.store-about-benefits-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.store-about-benefits-grid>div{min-width:0;min-height:15rem;padding:var(--space-5);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--selection)}
.store-about-benefits-grid h3{max-width:17ch;margin:0 0 var(--space-6);font-family:var(--font-body);font-size:1.15rem;line-height:1.35;font-weight:700}
.store-about-benefits-grid p{max-width:31ch;font-size:.9375rem;line-height:1.55}
.store-about-journal .text-link{margin-top:var(--space-3);color:var(--action)}
.store-about-contact{display:flex;justify-content:space-between;align-items:end;gap:var(--space-7);min-height:16rem;padding:var(--space-7);background:var(--ink);color:var(--surface)}
.store-about-contact h2{max-width:19ch;margin:0 0 var(--space-3);font-family:var(--font-display);font-size:clamp(1.65rem,2.8vw,2.65rem);font-weight:500;line-height:1.2;letter-spacing:-.025em;color:inherit}
.store-about-contact p{max-width:45ch;color:var(--on-dark-muted);line-height:1.55}
.store-about-contact .text-link{flex:none;justify-content:center;min-height:3rem;padding:var(--space-3) var(--space-5);background:var(--action);color:var(--on-action);text-decoration:none}
.store-about-contact .text-link:hover{background:var(--action-hover);color:var(--on-action)}
.shop-faq-intro{max-width:65ch;margin:0;color:var(--ink-muted);font-size:1.125rem;line-height:1.65}
.shop-faq-group{display:grid;grid-template-columns:minmax(14rem,.7fr) minmax(0,1.3fr);gap:var(--space-7);padding:var(--space-6) 0;border-top:1px solid var(--ink)}
.shop-faq-intro+.shop-faq-group{margin-top:var(--space-7)}
.shop-faq-group h2{max-width:15ch;margin:0;font-family:var(--font-display);font-size:clamp(1.35rem,2vw,1.75rem);font-weight:500;line-height:1.3}
.shop-faq-list{min-width:0;border-top:1px solid var(--line)}
.shop-faq-list details{margin:0;padding:0;border:0;border-bottom:1px solid var(--line)}
.shop-faq-list summary{position:relative;display:block;min-height:var(--touch);margin:0;padding:var(--space-4) var(--space-7) var(--space-4) 0;list-style:none;font-size:1.0625rem;font-weight:600;line-height:1.45;cursor:pointer}
.shop-faq-list summary::-webkit-details-marker{display:none}
.shop-faq-list summary::after{content:'';position:absolute;top:1.35rem;right:var(--space-2);width:.55rem;height:.55rem;border-right:2px solid var(--action);border-bottom:2px solid var(--action);transform:rotate(45deg);transition:transform var(--motion) var(--ease)}
.shop-faq-list details[open] summary::after{transform:translateY(.25rem) rotate(225deg)}
.shop-faq-list details p{max-width:67ch;margin:0 0 var(--space-5);color:var(--ink-muted);line-height:1.65}
.shop-faq-list summary:focus-visible{outline-offset:-2px}
.shop-faq-end{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-6) 0;border-top:1px solid var(--ink)}
.shop-faq-end h2{margin:0;font-family:var(--font-display);font-size:clamp(1.3rem,1.9vw,1.65rem);font-weight:500}
.shop-faq-end .text-link{color:var(--action)}
@media(max-width:900px){
  .memory-finder{grid-template-columns:1fr}
  .memory-finder-options{border-left:0;border-top:1px solid var(--line)}
  .home-guide-grid .journal-card{grid-template-columns:1fr}
  .home-guide-grid .journal-card-media img{height:9rem;min-height:0}
  .store-about-intro,.store-about-mission,.store-about-journal,.shop-faq-group{gap:var(--space-5)}
  .store-about-benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .home-banners-stage{height:auto}
  .home-banner-slide{grid-template-columns:1fr;grid-template-rows:auto 12rem}
  .home-banner-copy{min-height:12.5rem;padding:var(--space-5)}
  .home-banner-copy h2{max-width:none;margin-bottom:var(--space-2);font-size:clamp(1.55rem,6vw,2.25rem)}
  .home-banner-copy p{max-width:42ch;margin-bottom:var(--space-3);font-size:var(--font-small)}
  .home-banner-visual{height:12rem;border-top:1px solid var(--line);border-left:0}
  .home-brand-statement p{font-size:1.375rem}
  .home-banner-tab{min-height:3rem;padding:var(--space-2);font-size:.7rem}
  .memory-finder-copy{padding:var(--space-5)}
  .memory-finder h3{font-size:1.4rem}
  .memory-questions{grid-template-columns:1fr;gap:var(--space-3)}
  .memory-feedback{min-height:0}
  .memory-finder-options{padding:var(--space-4)}
  .home-guide-grid{grid-template-columns:1fr;gap:var(--space-3)}
  .home-guide-grid .journal-card{grid-template-columns:7.5rem minmax(0,1fr);gap:var(--space-3);padding:var(--space-3)}
  .home-guide-grid .journal-card-media img{height:100%;min-height:8rem;max-height:11rem}
  .home-guide-grid .journal-card h2{font-size:1rem}
  .news-grid{grid-template-columns:1fr}
  .news-card{display:grid;grid-template-columns:7.5rem minmax(0,1fr)}
  .news-card-media{height:100%;min-height:9.5rem;border-bottom:0;border-right:1px solid var(--line);padding:var(--space-2)}
  .news-card-copy{min-height:0;padding:var(--space-3)}
  .news-card h3{font-size:1rem}
  .news-card p{margin-bottom:var(--space-2)}
  .store-editorial-title{margin-bottom:var(--space-5)}
  .store-about-intro,.store-about-mission,.store-about-journal,.shop-faq-group{grid-template-columns:1fr;gap:var(--space-4)}
  .store-about-intro,.store-about-mission,.store-about-journal{padding:var(--space-6) 0}
  .store-about-lead{font-size:clamp(1.55rem,6vw,2.1rem)}
  .store-about-mission h2,.store-about-journal h2,.shop-faq-group h2{max-width:none}
  .store-about-benefits{padding:var(--space-6) 0}
  .store-about-benefits-heading{display:block}
  .store-about-benefits-heading p{margin-top:var(--space-2)}
  .store-about-benefits-grid{grid-template-columns:1fr}
  .store-about-benefits-grid>div{min-height:0;padding:var(--space-5)}
  .store-about-benefits-grid h3{margin-bottom:var(--space-3)}
  .store-about-benefits-grid p{max-width:none}
  .store-about-contact{min-height:0;display:block;padding:var(--space-6)}
  .store-about-contact .text-link{margin-top:var(--space-5)}
  .shop-faq-intro{font-size:1rem}
  .shop-faq-intro+.shop-faq-group{margin-top:var(--space-6)}
  .shop-faq-group{padding:var(--space-5) 0}
  .shop-faq-list summary{font-size:1rem}
}
@media(max-width:370px){
  .home-banner-slide{grid-template-rows:auto 11rem}
  .home-banner-copy{min-height:14rem}
  .home-banner-visual{height:11rem}
  .home-guide-grid .journal-card,.news-card{grid-template-columns:1fr}
  .home-guide-grid .journal-card-media img,.news-card-media{height:9rem;min-height:0}
  .news-card-media{border-right:0;border-bottom:1px solid var(--line)}
}
@media(prefers-reduced-motion:no-preference){
  .home-banner-slide.is-active{animation:home-banner-enter 430ms var(--ease) both}
  .home-banner-tab.is-active .home-banner-tab-track{transform-origin:left;animation:home-banner-progress 8s linear both}
  .home-banners.is-paused .home-banner-tab-track{animation-play-state:paused}
  .memory-capacity{transition:background-color 180ms var(--ease),box-shadow 180ms var(--ease)}
  .memory-capacity-fit:not([hidden]){animation:memory-fit-appear 180ms var(--ease) both}
  @keyframes home-banner-enter{from{opacity:.55;clip-path:inset(0 3% 0 0)}to{opacity:1;clip-path:inset(0)}}
  @keyframes home-banner-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes memory-fit-appear{from{opacity:.4}to{opacity:1}}
}
