/* Origin Point: warm paper, precise detail, and room to explore. Shared storefront system. */
:root { --origin-paper:#f7f5ef; --origin-ink:#222b32; --origin-muted:#616b72; --origin-rule:#d8dcd8; --origin-blue:#435da3; --origin-panel:#e9edf3; }
:root[data-appearance="dark"] { --origin-paper:#171c23; --origin-ink:#f1f0e9; --origin-muted:#bbc3cc; --origin-rule:#38424e; --origin-blue:#afc3fb; --origin-panel:#232e3e; }
body { background:var(--origin-paper); }
.origin-wrap { width:min(1240px,calc(100% - 80px)); margin-inline:auto; }
.origin-intro,.origin-guide,.origin-contact,.origin-catalog { color:var(--origin-ink); font-family:Inter,Arial,sans-serif; font-size:16px; line-height:1.6; }
.origin-intro { padding-top:28px; background:var(--origin-paper); }
.origin-hero { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.origin-eyebrow { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.17em; margin:0 0 24px; display:flex; align-items:center; gap:10px; }
.origin-dot { width:6px; height:6px; border-radius:50%; background:currentColor; display:inline-block; flex-shrink:0; }
.origin-copy { padding:38px 0; }
.origin-copy h1 { margin:0 0 26px; font-size:clamp(48px,5.6vw,82px); line-height:1.04; letter-spacing:-.065em; font-weight:400; color:var(--origin-ink); }
:is(.origin-copy,.origin-guide,.origin-contact) em { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.05em; color:var(--origin-blue); }
.origin-lead { max-width:420px; font-size:18px; line-height:1.7; margin:0 0 16px; }
.origin-description { max-width:360px; font-size:14px; color:var(--origin-muted); margin:0; }
.origin-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:30px; }
.origin-button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:52px; padding:14px 24px; background:#344d87; border:1px solid #344d87; color:white; border-radius:6px; text-decoration:none; font-size:14px; font-weight:500; transition:background .2s,transform .2s; }
.origin-button:hover { background:#243861; transform:translateY(-2px); color:white; }
.origin-text-link { color:var(--origin-ink); text-decoration:none; border-bottom:1px solid var(--origin-rule); padding:10px 0; font-size:13px; display:inline-block; }
.origin-text-link:hover { border-color:var(--origin-blue); color:var(--origin-blue); }
.origin-use { margin:25px 0 0; font-size:10px; line-height:1.6; color:var(--origin-muted); }
.origin-stage { position:relative; isolation:isolate; background:var(--origin-panel); border-radius:120px 8px 8px 8px; overflow:hidden; min-width:0; }
.origin-stage::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 65% 30%,#fff9,transparent 62%); }
.origin-stage-top,.origin-stage-bottom { position:absolute; z-index:2; left:28px; right:28px; display:flex; justify-content:space-between; gap:12px; font-size:8px; letter-spacing:.1em; pointer-events:none; color:var(--origin-ink); }
.origin-stage-top { top:32px; padding-left:32px; }
.origin-stage-bottom { bottom:22px; border-top:1px solid var(--origin-rule); padding-top:14px; letter-spacing:.02em; font-size:10px; }
.origin-stage-bottom .origin-dot { margin-right:6px; }
.origin-stage-word { position:absolute; left:18px; right:18px; top:33%; font-family:Georgia,serif; font-size:clamp(84px,11vw,164px); letter-spacing:-.07em; text-align:center; color:var(--origin-ink); opacity:.075; z-index:-1; }
.origin-stage opl-vial-viewer { width:88%; margin:20px auto 26px; }
.origin-orbit { position:absolute; inset:18% 12%; border:1px solid var(--origin-rule); border-radius:50%; transform:rotate(-28deg) scaleX(.75); pointer-events:none; z-index:-1; }
.origin-principles { display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; gap:32px; padding-block:32px 38px; margin-top:30px; border-top:1px solid var(--origin-rule); font-size:13px; }
.origin-principles>span { line-height:1.6; color:var(--origin-muted); }
.origin-principles strong { color:var(--origin-ink); font-weight:500; }
.origin-principles p { margin:0; border-left:1px solid var(--origin-rule); padding-left:24px; }
.origin-principles p span { display:block; font-size:9px; letter-spacing:.12em; margin-bottom:8px; color:var(--origin-muted); }
.origin-catalog { background:var(--origin-paper)!important; padding:60px 0 70px; border-top:1px solid var(--origin-rule); }
.origin-catalog>.page-width { width:min(1240px,calc(100% - 80px)); max-width:none; padding-inline:0; }
.origin-catalog h2 { font-size:clamp(30px,3.2vw,44px); letter-spacing:-.045em; margin:0; font-weight:400; color:var(--origin-ink); }
.origin-catalog .origin-eyebrow { margin-bottom:12px; }
.origin-catalog-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.origin-search-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:28px 0 24px; }
.origin-search { display:flex; align-items:center; gap:10px; width:min(400px,100%); border-bottom:1px solid var(--origin-rule); }
.origin-search>span { font-size:25px; }
.origin-search input { background:transparent; color:var(--origin-ink); border:0; min-width:0; width:100%; border-radius:0; padding:12px 4px; min-height:46px; font:inherit; font-size:13px; }
.origin-search input::placeholder { color:var(--origin-muted); opacity:1; }
[data-origin-count] { font-size:11px; color:var(--origin-muted); white-space:nowrap; }
.origin-catalog :is(.product-grid,.opl-catalog-grid) { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
:is(.product-card,.opl-catalog-card) { border:1px solid var(--origin-rule); border-radius:8px; overflow:hidden; background:var(--origin-paper); transition:transform .25s,border-color .25s,box-shadow .25s; }
:is(.product-card,.opl-catalog-card):hover { transform:translateY(-5px); border-color:var(--origin-blue); box-shadow:0 14px 28px #1520390a; }
:is(.product-card__media,.opl-catalog-card__media) { background:var(--origin-panel)!important; border:0; padding:0; }
:is(.product-card__body,.opl-catalog-card__body) { padding:20px; }
:is(.product-card,.opl-catalog-card) h3 { font-size:20px; line-height:1.25; letter-spacing:-.035em; color:var(--origin-ink); }
.origin-catalog :is(.product-card__body>p:not(.price),.opl-card-excerpt) { display:none; }
.origin-catalog :is(.product-card__meta,.opl-card-meta) { gap:5px; }
.origin-catalog :is(.pill,.opl-pill) { background:transparent; color:var(--origin-muted); padding:0; border:0; font-size:8px; letter-spacing:.04em; }
.origin-catalog .pill--ok { display:none; }
.origin-catalog .pill + .pill::before { content:' / '; margin-inline:4px; }
.origin-catalog .price { font-size:12px; color:var(--origin-muted); }
.origin-catalog .product-card__foot { border-top:1px solid var(--origin-rule); margin-top:18px; padding-top:12px; font-size:11px; }
.origin-more { display:block; width:100%; color:var(--origin-ink); background:transparent; border:1px solid var(--origin-rule); border-radius:5px; padding:15px; margin-top:24px; font:inherit; font-size:12px; cursor:pointer; }
.origin-more:hover { background:var(--origin-panel); }
[data-origin-catalog] [hidden] { display:none!important; }
.origin-guide { display:grid; grid-template-columns:1fr 1fr; gap:90px; padding-block:80px; border-top:1px solid var(--origin-rule); align-items:center; }
.origin-guide h2,.origin-contact h2 { font-size:clamp(38px,4vw,56px); font-weight:400; letter-spacing:-.05em; line-height:1.12; margin:0 0 24px; color:var(--origin-ink); }
.origin-guide-intro>p:not(.origin-eyebrow) { max-width:355px; color:var(--origin-muted); font-size:15px; }
.origin-notebook { background:var(--origin-panel); border:1px solid var(--origin-rule); padding:28px; border-radius:6px; }
.origin-notebook-top { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.1em; margin-bottom:26px; }
.origin-notebook details { border-top:1px solid var(--origin-rule); }
.origin-notebook summary { display:flex; align-items:center; gap:16px; list-style:none; cursor:pointer; min-height:68px; font-size:14px; }
.origin-notebook summary::-webkit-details-marker { display:none; }
.origin-notebook summary::after { content:'+'; margin-left:auto; font-size:22px; font-weight:300; }
.origin-notebook details[open] summary::after { content:'−'; }
.origin-notebook summary>span { font-size:10px; color:var(--origin-muted); }
.origin-notebook details>div { padding:0 28px 24px; font-size:13px; color:var(--origin-muted); }
.origin-notebook details p { margin:0 0 12px; }
.origin-notebook a { color:var(--origin-blue); text-decoration:underline; text-underline-offset:4px; }
.origin-notebook-foot { font-family:Georgia,serif; font-style:italic; color:var(--origin-muted); font-size:14px; margin:24px 0 0; }
.origin-contact { display:grid; grid-template-columns:1.3fr 1fr; gap:80px; align-items:center; padding:48px 54px; border-radius:8px; background:#2e4168; color:#f7f5ef; margin-bottom:80px; }
.origin-contact :is(h2,em) { color:#f7f5ef; }
.origin-contact h2 { margin-bottom:0; }
.origin-contact>div>p:not(.origin-eyebrow) { color:#dae2ef; font-size:15px; max-width:350px; margin:0 0 24px; }
.origin-contact .origin-button { background:#f7f5ef; color:#263958; border-color:#f7f5ef; }
.site-header { background:var(--origin-paper); border-bottom:1px solid var(--origin-rule); }
.site-header__row { max-width:1320px; }
.header-meta>span { display:none; }
.announce { background:#2e4168; font-size:10px; letter-spacing:.035em; }
.site-footer { background:#202c3e; }
.prose h2,.pdp h1 { letter-spacing:-.045em; }
:is(.btn,.cart-btn,.menu-toggle,.appearance-toggle) { min-height:44px; }
:focus-visible { outline:2px solid var(--origin-blue); outline-offset:5px; }
[data-appearance="dark"] .origin-stage::before { opacity:.1; }
[data-appearance="dark"] :is(.product-card,.opl-catalog-card) { background:var(--origin-paper); }
@media(max-width:1000px) {
 .origin-wrap,.origin-catalog>.page-width { width:calc(100% - 48px); }
 .origin-hero { gap:28px; }
 .origin-copy h1 { font-size:55px; }
 .origin-stage-top { padding-left:10px; font-size:7px; }
 .origin-catalog :is(.product-grid,.opl-catalog-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .origin-guide { gap:40px; }
 .origin-contact { gap:40px; padding:40px; }
}
@media(max-width:680px) {
 .origin-wrap,.origin-catalog>.page-width { width:calc(100% - 36px); }
 .origin-intro { padding-top:8px; }
 .origin-hero { grid-template-columns:1fr; gap:24px; }
 .origin-copy { padding:28px 4px 0; }
 .origin-copy h1 { font-size:clamp(46px,12.8vw,70px); margin-bottom:22px; }
 .origin-eyebrow { font-size:9px; margin-bottom:20px; }
 .origin-lead { font-size:16px; max-width:95%; }
 .origin-description { font-size:13px; max-width:90%; }
 .origin-actions { margin-top:24px; gap:20px; }
 .origin-button { min-height:50px; padding:12px 18px; gap:20px; font-size:13px; }
 .origin-use { margin-top:18px; }
 .origin-stage { border-top-left-radius:80px; }
 .origin-stage opl-vial-viewer { width:85%; margin-top:8px; margin-bottom:10px; }
 .origin-stage-top { top:24px; font-size:7px; }
 .origin-stage-word { font-size:100px; }
 .origin-stage-bottom { font-size:9px; left:22px; right:22px; bottom:16px; }
 .origin-principles { grid-template-columns:1fr 1fr; gap:22px 12px; padding:24px 0; margin-top:28px; font-size:11px; }
 .origin-principles p { padding-left:12px; }
 .origin-principles p:nth-child(3) { border:0; padding-left:0; }
 .origin-catalog { padding:38px 0; }
 .origin-catalog-heading { display:block; }
 .origin-catalog-heading>.origin-text-link { margin-top:8px; }
 .origin-catalog h2 { font-size:32px; }
 .origin-search-row { gap:10px; margin-top:18px; }
 [data-origin-count] { font-size:10px; }
 .origin-search { max-width:74%; }
 .origin-search input { font-size:16px; }
 .origin-catalog :is(.product-grid,.opl-catalog-grid) { gap:10px; }
 .origin-catalog :is(.product-card__body,.opl-catalog-card__body) { padding:12px; }
 .origin-catalog :is(.product-card,.opl-catalog-card) h3 { font-size:17px; }
 .origin-catalog .price { font-size:11px; }
 .origin-catalog :is(.pill,.opl-pill) { font-size:7px; }
 .origin-guide { grid-template-columns:1fr; gap:28px; padding-block:44px; }
 .origin-guide h2,.origin-contact h2 { font-size:40px; }
 .origin-notebook { padding:22px; }
 .origin-notebook summary { font-size:13px; }
 .origin-contact { grid-template-columns:1fr; gap:22px; padding:30px 24px; margin-bottom:40px; }
 .origin-contact .origin-eyebrow { font-size:8px; }
 .site-header__row { min-height:70px; }
 .announce { font-size:8px; padding-right:28px; }
}
@media(prefers-reduced-motion:no-preference) { .origin-copy { animation:origin-enter .65s both; } .origin-stage { animation:origin-enter .85s both; } @keyframes origin-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; } }
.announce { color:#eef2fa; }
.announce button { color:inherit; }
@media(max-width:680px) { .cart-btn,.menu-toggle { font-size:12px; padding:8px 10px; } }
@media(max-width:360px) { .site-header .brand__name { font-size:13px; }.site-header .brand { gap:6px; }.site-header .brand img { width:24px; height:24px; }.site-header__row { gap:6px; }.origin-actions { gap:12px; }.origin-text-link { font-size:12px; } }
.origin-skip { position:fixed; top:8px; left:8px; z-index:100; background:var(--origin-paper); color:var(--origin-ink); padding:12px; transform:translateY(-160%); }
.origin-skip:focus { transform:none; }
.pdp>* { min-width:0; }
.specs { table-layout:fixed; }
.specs :is(th,td) { overflow-wrap:anywhere; }
@media(max-width:680px) { .pdp { grid-template-columns:minmax(0,1fr); }.pdp .specs :is(th,td) { font-size:12px; padding:10px; } }

/* Long catalog names must wrap within narrow cards. */
:is(.product-card,.opl-catalog-card) h3 { overflow-wrap:anywhere; }
@media(max-width:360px) {
 .origin-catalog :is(.product-grid,.opl-catalog-grid) { grid-template-columns:minmax(0,1fr); }
}
