/* Shop uses the same navy, soft lilac and peach discovery language as the home page. */
body[data-category="shop"] { --ink:#101b3c; --muted:#58627a; --paper:#fff; --cream:#fff; --line:#e9e3ed; background:#fff; color:var(--ink); }
.shop-wrap { width:min(1420px,calc(100% - 64px)); }
.shop-demo-note { font-size:12px; color:#69718a; margin:18px 0 0; line-height:1.6; }
.context-bar { position:static; background:#101b3c!important; box-shadow:none; padding:8px 0!important; }
.context-bar .context-pulse { color:#fff; background:transparent; text-transform:none; letter-spacing:0; font-size:12px; padding:0; }
.context-bar .context-pill { font-size:11px; font-weight:400; }
.context-bar .ctx-btn { min-height:36px; border-radius:20px; }
.context-bar .cart-trigger { background:#f4c6e7; color:#101b3c; border:0; }
.shop-hero { position:relative; isolation:isolate; grid-template-columns:1.6fr .8fr; min-height:440px; padding:44px!important; border:0; border-radius:26px; background:#121b28!important; color:white; gap:45px; }
.shop-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#080e17e8,#080e1780 60%,#080e1738); border-radius:inherit; }
.shop-hero .shop-hero-photo { position:absolute!important; inset:0; width:100%; height:100%; opacity:1; border-radius:inherit; object-fit:cover; object-position:center 33%; z-index:-2; }
.shop-hero h1 { color:white; font:800 clamp(38px,4.1vw,60px)/1.07 Arial!important; letter-spacing:-2px!important; max-width:780px; }
.shop-hero h1 em { color:#ffc5dc; background:none; padding:0; font-style:normal; display:block; }
.shop-hero .hero-eyebrow { color:#f8d9e5; font:700 11px Arial; letter-spacing:.13em; margin:0 0 16px; }
.shop-hero p:not(.hero-eyebrow) { font:15px/1.7 Arial; color:#fff; max-width:540px; }
.shop-hero .primary-cta { color:#101b3c; background:linear-gradient(100deg,#f6a8ee,#ffbd8f); border:0; border-radius:99px; padding:16px 22px; }
.hero-note { font-size:11px; color:#f4e7f0; }
.hero-snapshot-card { position:relative; background:#fffef2ed!important; color:#101b3c; border:1px solid #fff8!important; border-radius:22px; box-shadow:0 12px 30px #0002; padding:25px; }
.snapshot-spark { color:#f18766; font-size:30px; }
.hero-snapshot-card h2 { font:800 26px/1.1 Arial; letter-spacing:-.8px; margin:8px 0 15px; }
.shop-hero .hero-snapshot-card p { font:13px/1.6 Arial; color:#555d73; margin:0 0 18px; }
.snapshot-kv { gap:14px; border-color:#e4dce5; padding:10px 0; font-size:11px; }
.snapshot-kv strong { max-width:65%; text-align:right; }
.snapshot-ask { display:flex; justify-content:space-between; width:100%; padding:13px 0 0; border:0; background:transparent; color:#101b3c; font-weight:700; cursor:pointer; }
.shop-collections { margin:32px 0; }
.section-header h2 { font:800 clamp(24px,2.4vw,34px)/1.12 Arial; letter-spacing:-1px; }
.section-header a { color:#101b3c; font-size:13px; font-weight:700; }
.section-eyebrow { font-size:10px; color:#785c79; letter-spacing:.1em; }
.collection-shortcuts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.collection-shortcut { display:block; position:relative; overflow:hidden; padding:0; border:2px solid transparent; border-radius:17px; background:#f6edf6; color:#101b3c; cursor:pointer; text-align:left; }
.collection-shortcut img { width:100%; height:150px; object-fit:cover; display:block; transition:transform .2s; }
.collection-shortcut span { display:flex; justify-content:space-between; align-items:center; padding:14px; font:700 13px Arial; gap:6px; }
.collection-shortcut:hover img { transform:scale(1.025); }
.collection-shortcut.selected { border-color:#a779af; box-shadow:0 0 0 2px #f2d8ed; }
.control-deck { background:#faf6fc!important; padding:24px; box-shadow:none; border:1px solid #e9e0ed!important; border-radius:22px!important; }
.control-deck-top { border-bottom:1px solid #e8dfeb; }
.control-deck-title { font-size:13px; color:#101b3c; text-transform:none; letter-spacing:0; }
.preset-chip,.filter-chip { background:#fff; border:1px solid #ded3e5; border-radius:30px; min-height:36px; padding:8px 12px; color:#4e5069; }
.preset-chip:hover,.preset-chip.active { background:#f0ddf1; border-color:#c2a1cf; }
.filter-chip.selected,.filter-chip.strict.selected { background:#101b3c; border-color:#101b3c; color:white; }
.filter-group label { color:#655774; font-size:10px; }
#shop-search-input { width:100%; box-sizing:border-box; padding:12px 14px; border:1px solid #ded3e5; border-radius:24px; background:white; color:#101b3c; font-size:13px; }
.dynamic-section { scroll-margin-top:24px; margin:40px 0; }
.rank-badge { background:#f5ecf6; border:0; color:#695473; }
.product-card { border-radius:20px; box-shadow:0 4px 20px #101b3c07!important; }
.product-card:hover { transform:translateY(-2px); box-shadow:0 8px 25px #101b3c12!important; }
.product-card .product-art { padding:0; height:255px; border:0; background:#f5f1f6!important; overflow:hidden; }
.product-card .product-art img { display:block; width:100%; height:100%; max-height:none; max-width:none; object-fit:cover; }
.product-card .product-art a { display:block; width:100%; height:100%; }
.product-badge { max-width:80%; border-radius:20px; background:#fffef2ed!important; color:#101b3c!important; text-transform:none; letter-spacing:0; font-size:10px; padding:7px 11px; box-shadow:0 2px 10px #0001; }
.product-card .product-body { padding:20px; }
.product-image-note { font-size:10px; color:#766781; margin:0 0 12px; line-height:1.4; }
.product-reason { color:#85638c; font-size:10px; }
.product-card .product-title { font:800 20px/1.2 Arial; letter-spacing:-.6px; }
.product-sub { font:13px/1.6 Arial; color:#61677b; }
.product-why { background:#faf6fc!important; border:0!important; border-radius:12px; padding:11px; font-size:11px; color:#665773!important; }
.product-companion-link { color:#69557f; font-size:11px; }
.product-footer { border-color:#eee5ee; gap:12px; }
.price-now { font-size:22px; }
.ship-note { font-size:10px; color:#737086; margin-top:6px; }
.add-btn { border:0!important; border-radius:99px; padding:12px 16px; white-space:nowrap; background:#101b3c!important; color:#fff!important; }
.bundle-card { border:1px solid #eaddec!important; border-radius:20px; box-shadow:none; background:linear-gradient(130deg,#f7effb,#fff3eb)!important; }
.bundle-card .product-title { font:800 23px/1.15 Arial; letter-spacing:-.6px; }
.bundle-savings { border:0; border-radius:20px; background:#f5d9df; color:#674850; }
.bundle-card .add-btn { white-space:normal; }
.library-invitation { display:grid; grid-template-columns:1fr 1.2fr; background:#f9eff6; border-radius:24px; overflow:hidden; border:0; margin-bottom:40px; }
.library-invitation-art { padding:0; min-height:300px; }
.library-invitation-art img { width:100%; height:100%; max-height:380px; object-fit:cover; display:block; }
.library-invitation-copy { padding:38px; align-self:center; }
.library-invitation-copy h2 { font:800 32px/1.12 Arial; letter-spacing:-1px; }
.library-invitation-copy p { font:14px/1.7 Arial; color:#606078; }
.primary-cta { border-radius:99px; }
.concierge-dock { box-sizing:border-box; width:min(390px,calc(100% - 32px)); border:1px solid #e2d7e9; border-radius:24px; background:white; box-shadow:0 10px 45px #101b3c28; bottom:max(18px,env(safe-area-inset-bottom)); right:20px; }
.concierge-header { border:0; width:100%; text-align:left; background:#101b3c!important; color:#fff!important; padding:15px; display:flex; gap:12px; min-height:76px; font-family:Arial; }
.concierge-avatar { flex-shrink:0; width:43px; height:43px; border-radius:15px; background:linear-gradient(130deg,#fff1da,#f5dcff); display:grid; place-items:center; }
.concierge-heading { flex:1; min-width:0; }
.concierge-heading strong { display:block; font:800 16px/1.4 Arial; }
.concierge-heading>span { display:block; color:#ddd0e6; font-size:10px; line-height:1.5; }
.concierge-toggle-icon { font:400 26px Arial; padding:4px; }
.concierge-body { padding:20px; max-height:min(580px,calc(100dvh - 155px)); overflow:auto; overscroll-behavior:contain; background:linear-gradient(180deg,#fcf5ff,#fff 180px); }
.concierge-body[hidden] { display:none; }
.concierge-intro p { margin:10px 0; color:#101b3c; font:800 24px/1.14 Arial; letter-spacing:-.7px; }
.concierge-intro>span:last-child { display:block; font:12px/1.6 Arial; color:#6b6179; margin-bottom:18px; }
#concierge-messages { display:flex; flex-direction:column; gap:12px; margin-bottom:16px; }
.concierge-msg { border:0; margin:0; max-width:94%; padding:13px 15px; border-radius:16px; font:13px/1.65 Arial; overflow-wrap:anywhere; }
.concierge-msg strong { font-size:10px; display:block; margin-bottom:4px; }
.concierge-msg p { margin:0; }
.concierge-msg-user { align-self:flex-end; background:#101b3c; color:white; border-bottom-right-radius:4px; }
.concierge-msg-guide { align-self:flex-start; background:#f2e9f6; color:#382d50; border-bottom-left-radius:4px; }
.concierge-prompts { gap:7px; margin:14px 0; }
.concierge-prompt-btn { background:white; border-color:#e2d5e9; color:#655175; font-size:11px; padding:9px 11px; min-height:36px; }
.concierge-form { gap:5px; padding:6px; border:1px solid #d7c8e1; border-radius:28px; background:#fff; }
.concierge-form input { min-width:0; width:100%; border:0; background:transparent; padding:8px 9px; font-size:12px; border-radius:24px; }
.concierge-form button { flex-shrink:0; border-radius:50%; width:38px; height:38px; padding:0; background:linear-gradient(130deg,#f7b5e9,#ffbd96); color:#101b3c; font-size:22px; }
.concierge-footnote { font:10px/1.6 Arial; color:#797186; text-align:center; margin:10px 0 0; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.concierge-dock :focus-visible,.shop-wrap :focus-visible { outline:3px solid #a76eb7; outline-offset:3px; }
.cart-panel { box-sizing:border-box; }
.empty-state-box { background:#faf6fc; border-color:#e2d4e9; }
@media(max-width:1000px) { .shop-hero { grid-template-columns:1.4fr 1fr; padding:30px!important; gap:28px; } .hero-snapshot-card { padding:20px; } .collection-shortcuts { gap:10px; } .collection-shortcut img { height:130px; } .collection-shortcut span { padding:10px; font-size:11px; } }
@media(max-width:760px) { .shop-wrap { width:calc(100% - 36px); } .shop-demo-note { font-size:11px; } .shop-hero { grid-template-columns:1fr; padding:28px!important; gap:24px; } .shop-hero h1 { font-size:34px!important; letter-spacing:-1.5px!important; } .shop-hero p:not(.hero-eyebrow) { font-size:14px; } .hero-snapshot-card { padding:20px; } .hero-snapshot-card h2 { font-size:23px; } .snapshot-spark { float:right; } .hero-snapshot-card h2 br { display:none; } .collection-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); } .collection-shortcut:last-child { grid-column:span 2; } .collection-shortcut:last-child img { height:150px; object-position:center 45%; } .collection-shortcut span { font-size:13px; padding:13px; } .control-deck { padding:20px; } .filter-grid { grid-template-columns:1fr; } .product-grid { grid-template-columns:1fr!important; } .bundle-grid { grid-template-columns:1fr; } .library-invitation { grid-template-columns:1fr; } .library-invitation-art { min-height:0; } .library-invitation-art img { height:240px; } .library-invitation-copy { padding:25px; } .library-invitation-copy h2 { font-size:28px; } .concierge-dock { right:16px; } .concierge-header { min-height:68px; padding:12px 14px; } .concierge-avatar { width:38px; height:38px; } .concierge-body { padding:18px; max-height:calc(100dvh - 145px); } .section-header h2 { font-size:27px; } .section-header>a { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { .collection-shortcut img,.product-card { transition:none; } .collection-shortcut:hover img,.product-card:hover { transform:none; } }

/* Catalog-first shop repair. These rules are scoped to this page's stylesheet. */
.skip { position:fixed; left:16px; top:12px; z-index:100; padding:12px 18px; border-radius:24px; background:#101b3c; color:white; transform:translateY(-160%); }
.skip:focus { transform:translateY(0); outline:3px solid #b995d5; outline-offset:3px; }
.shop-wrap { padding-top:0; }
.shop-demo-note { margin:12px 0; max-width:100%; }
.shop-header-bag { flex:none; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 14px; border-radius:24px; background:#f5e5f2; color:#101b3c; text-decoration:none; font-weight:700; white-space:nowrap; font-size:12px; }
.shop-hero { display:block; min-height:0; padding:24px 30px!important; margin:12px 0 18px; border-radius:20px; }
.shop-hero h1 { font-size:36px!important; letter-spacing:-1px!important; margin:0 0 8px; }
.shop-hero h1 em { display:inline; }
.shop-hero .hero-eyebrow { margin:0 0 9px; font-size:10px; }
.shop-hero p:not(.hero-eyebrow) { font-size:14px; margin:0 0 13px; }
.shop-hero .primary-cta { padding:11px 18px; min-height:44px; box-sizing:border-box; font-size:12px; }
.shop-controls { margin:16px 0 0; }
.shop-controls[hidden],.concierge-dock[hidden] { display:none; }
.shop-topic-row { display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.shop-topic-row .filter-chip { min-height:40px; }
.shop-all-link { margin-left:auto; font-size:12px; color:#101b3c; padding:10px 0 10px 10px; white-space:nowrap; }
.shop-search-row { display:flex; gap:16px; align-items:center; margin:10px 0 4px; }
.shop-search-row #shop-search-input { flex:1; min-width:0; min-height:44px; max-width:560px; font-size:14px; }
.shop-help-link,.shop-clear { background:none; border:0; min-height:44px; padding:6px 0; color:#67517b; text-decoration:underline; cursor:pointer; font:700 12px Arial; }
.shop-help-link { flex:none; }
.shop-filter-details { border-bottom:1px solid #e9e0ed; }
.shop-filter-details summary { cursor:pointer; padding:12px 0; font-size:13px; font-weight:700; min-height:20px; }
.shop-filter-details summary span { color:#6a6475; font-size:11px; font-weight:400; margin-left:12px; }
.shop-filter-details .filter-grid { padding:12px 0 20px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.filter-group { min-width:0; margin:0; padding:0; border:0; }
.filter-group legend { font-size:12px; font-weight:700; margin:0 0 9px; color:#564668; }
.filter-note { font-size:11px; line-height:1.5; margin:0 0 8px; color:#666078; }
.active-filters { display:flex; align-items:flex-start; gap:12px; }
#active-context-pills { display:flex; flex-wrap:wrap; gap:6px; padding-top:6px; }
#active-context-pills:empty { padding:0; }
.active-filters .context-pill { color:#4d3e5e; background:#f6eff8; border:1px solid #e7dced; min-height:32px; padding:3px 8px; font-size:11px; }
.active-filters .context-pill button { color:#4d3e5e; min-width:30px; min-height:30px; }
.shop-clear { margin-left:auto; flex:none; }
.dynamic-section { margin:20px 0 32px; scroll-margin-top:20px; }
.section-header { margin-bottom:14px; }
.section-header h2 { font-size:27px; }
.section-eyebrow { margin-bottom:5px; }
.product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.product-card .product-art { height:210px; }
.product-card .product-body { padding:17px; }
.product-card .product-title { font-size:18px; }
.product-footer { flex-wrap:wrap; }
.product-footer .add-btn { font-size:12px; padding:11px 14px; text-decoration:none; min-height:40px; box-sizing:border-box; }
.ship-note { display:block; }
.library-invitation { margin-top:25px!important; }
body[data-category="shop"] { padding-bottom:calc(var(--shop-privacy-height,0px) + 100px); }
.concierge-dock { bottom:calc(var(--shop-privacy-height,0px) + max(16px,env(safe-area-inset-bottom))); max-height:calc(100dvh - var(--shop-privacy-height,0px) - 32px); }
.concierge-body { max-height:calc(100dvh - var(--shop-privacy-height,0px) - 150px); }
.cart-modal { inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; overflow:hidden; }
.cart-modal:not([open]) { display:none; }
.cart-modal[open] { display:flex; justify-content:flex-end; }
.cart-modal::backdrop { background:#101b3c88; }
.cart-panel { height:100%; padding-bottom:max(24px,env(safe-area-inset-bottom)); border-left:0; }
#sandbox-checkout-btn:disabled { opacity:.5; cursor:not-allowed; }
#sandbox-checkout-receipt:focus { outline:3px solid #a76eb7; outline-offset:3px; }
@media(max-width:1150px) { .shop-header-bag { margin-left:auto; } .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) {
  .shop-hero { padding:20px!important; margin-bottom:14px; }
  .shop-hero h1 { font-size:29px!important; }
  .shop-hero h1 em { display:block; }
  .shop-hero p:not(.hero-eyebrow) { font-size:12px; line-height:1.5; }
  .shop-hero .hero-eyebrow { display:none; }
  .shop-topic-row { flex-wrap:nowrap; overflow:auto; padding:0 0 5px; }
  .shop-topic-row .filter-chip { flex:none; font-size:12px; padding:8px 12px; }
  .shop-all-link { flex:none; }
  .shop-search-row { gap:10px; margin:4px 0 0; }
  .shop-help-link { font-size:11px; }
  .shop-filter-details summary span { display:none; }
  .shop-filter-details .filter-grid { grid-template-columns:1fr; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px; }
  .product-card .product-art { height:180px; }
  .section-header h2 { font-size:23px; }
  .concierge-dock { width:min(350px,calc(100% - 32px)); }
  .concierge-header { min-height:62px; padding:10px 12px; }
  .concierge-body { max-height:calc(100dvh - var(--shop-privacy-height,0px) - 138px); }
}
@media(max-width:480px) { .product-grid { grid-template-columns:1fr!important; } .product-card .product-art { height:250px; } .shop-header-bag { padding:0 12px; } .shop-hero h1 { font-size:27px!important; } }
