.shop-legal-page { background: #fff; }
.shop-legal-progress { position: fixed; z-index: 45; top: 71px; right: 0; left: 0; height: 3px; background: rgba(134,167,192,.2); }
.shop-legal-progress span { display: block; width: 0; height: 100%; background: #1478bc; transition: width .12s linear; }

/* Document-first layout: no promotional hero and no content hidden in cards. */
.shop-legal-toolbar { border-bottom: 1px solid #dce6ed; background: #fff; }
.shop-legal-toolbar-inner { display: flex; width: calc(100% - clamp(48px,6vw,128px)); min-height: 104px; align-items: center; justify-content: space-between; gap: 34px; }
.shop-legal-toolbar-title { display: flex; min-width: 205px; align-items: center; gap: 13px; color: #143f66; }
.shop-legal-toolbar-title>span { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border: 1px solid #bcd2e2; border-radius: 50%; color: #1579ba; font: 700 1.08rem/1 Georgia,serif; }
.shop-legal-toolbar-title strong,.shop-legal-toolbar-title small { display: block; }
.shop-legal-toolbar-title strong { font-size: .9rem; letter-spacing: .02em; }
.shop-legal-toolbar-title small { margin-top: 4px; color: #75899a; font-size: .68rem; }
.shop-legal-doc-tabs { display: flex; align-self: stretch; align-items: stretch; gap: 4px; }
.shop-legal-doc-tab { position: relative; display: grid; min-width: 168px; align-content: center; padding: 17px 19px; border: 0; background: transparent; color: #526b80; font-size: .79rem; font-weight: 900; text-decoration: none; transition: background-color .18s,color .18s; }
.shop-legal-doc-tab::after { position: absolute; right: 19px; bottom: 0; left: 19px; height: 3px; background: transparent; content: ""; }
.shop-legal-doc-tab small { display: block; margin-bottom: 6px; color: #91a4b3; font-size: .55rem; letter-spacing: .13em; }
.shop-legal-doc-tab:hover { background: #f7fafc; color: #175d90; }
.shop-legal-doc-tab.active { background: #f4f9fc; color: #124d79; }
.shop-legal-doc-tab.active::after { background: #1478bc; }
.shop-legal-doc-tab.active small { color: #167abd; }

.shop-legal-layout { display: grid; width: calc(100% - clamp(48px,6vw,128px)); grid-template-columns: clamp(230px,15vw,310px) minmax(0,1fr); gap: clamp(38px,4.5vw,84px); padding-top: clamp(42px,6vw,72px); padding-bottom: clamp(80px,10vw,140px); }
.shop-legal-toc { position: sticky; top: 112px; align-self: start; padding: 20px; border: 1px solid #dce7ee; border-radius: 12px; background: #f7fafc; }
.shop-legal-toc>span { display: block; margin-bottom: 14px; color: #1a6fa8; font-size: .62rem; font-weight: 900; letter-spacing: .14em; }
.shop-legal-toc nav { display: grid; }
.shop-legal-toc a { padding: 8px 9px 8px 13px; border-left: 2px solid #d6e2ea; color: #677d8f; font-size: .73rem; line-height: 1.45; text-decoration: none; transition: border-color .18s,background-color .18s,color .18s; }
.shop-legal-toc a:hover { background: #edf5fa; color: #195f91; }
.shop-legal-toc a.active { border-left-color: #1478bc; background: #edf6fc; color: #154f79; font-weight: 900; }
.shop-legal-document { min-width: 0; min-height: 520px; color: #334e63; }
.shop-legal-document h1 { margin: 0 0 15px; color: #102f4d; font-size: clamp(2.25rem,4vw,3.35rem); letter-spacing: -.065em; line-height: 1.12; }
.shop-legal-document h2 { margin: 52px 0 16px; padding-top: 28px; border-top: 1px solid #dce6ed; color: #153f67; font-size: clamp(1.25rem,1.9vw,1.58rem); letter-spacing: -.035em; scroll-margin-top: 112px; }
.shop-legal-document p,.shop-legal-document li { color: #486176; font-size: .94rem; line-height: 1.95; }
.shop-legal-document p { margin: 0 0 18px; }
.shop-legal-document h1+p { margin-bottom: 31px; color: #6d8497; font-size: .8rem; }
.shop-legal-document ul { display: grid; gap: 8px; margin: 9px 0 24px; padding-left: 1.3rem; }
.shop-legal-document a { color: #0e70b4; text-underline-offset: 3px; }
.shop-legal-loading { display: grid; min-height: 420px; place-items: center; align-content: center; color: #6a8296; }
.shop-legal-loading span { width: 32px; height: 32px; border: 2px solid #d4e4ef; border-top-color: #1478bc; border-radius: 50%; animation: legal-spin .8s linear infinite; }
.shop-legal-error { padding: 28px; border: 1px solid #efd4d6; border-radius: 8px; background: #fff8f8; color: #9c4048; line-height: 1.7; }
.shop-footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
@keyframes legal-spin { to { transform: rotate(360deg); } }

@media(max-width:900px){
  .shop-legal-progress{top:63px}
  .shop-legal-toolbar-inner{display:grid;width:var(--store-shell);min-height:0;padding-top:22px}
  .shop-legal-doc-tabs{width:calc(100% + 22px);overflow-x:auto;margin-right:-22px;scrollbar-width:none}
  .shop-legal-doc-tab{min-width:165px;padding:15px}
  .shop-legal-layout{width:var(--store-shell);grid-template-columns:1fr;gap:34px}
  .shop-legal-toc{position:static}
  .shop-legal-toc nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-footer .shop-shell{align-items:center}
  .shop-footer-links{order:3;width:100%}
}
@media(max-width:580px){
  .shop-legal-toolbar-inner{gap:18px;padding-top:18px}
  .shop-legal-toolbar-title>span{width:34px;height:34px}
  .shop-legal-doc-tab{min-width:145px;padding:13px 12px}
  .shop-legal-layout{gap:27px;padding-top:30px}
  .shop-legal-toc{padding:16px}
  .shop-legal-toc nav{grid-template-columns:1fr}
  .shop-legal-document h2{margin-top:40px;padding-top:23px}
  .shop-footer-links{justify-content:flex-start;gap:12px 18px}
}
@media(prefers-reduced-motion:reduce){.shop-legal-progress span{transition:none}.shop-legal-loading span{animation:none}}
