/* Sphinx – shop system pages (cart, checkout, account, partner) · builds on styles.css tokens */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.notice{border-radius:var(--r);padding:16px 20px;margin:0 0 24px;background:var(--ivory);border:1px solid var(--line);font-size:15px;line-height:1.5}
.woocommerce-message,.notice--ok{border-color:rgba(30,61,47,.35);color:var(--green)}
.woocommerce-error,.notice--err{border-color:rgba(162,62,44,.4);color:var(--red)}
.woocommerce-info,.notice--info{border-color:rgba(176,138,60,.5);color:var(--gold-3)}

.sx-page{padding:40px 0 90px}
.sx-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:48px;align-items:start}
.sx-card{background:var(--ivory);border:1px solid var(--line-soft);border-radius:var(--r);padding:28px 30px;box-shadow:var(--shadow-1)}
.sx-card h2,.sx-card h3{font-family:var(--font-display);font-weight:600;color:var(--green);margin-bottom:18px;font-size:26px}
.sx-card h3{font-size:22px}
.sx-card+.sx-card{margin-top:24px}
.sx-sticky{position:sticky;top:calc(var(--chrome-h) + 20px)}

/* Tables */
table.sx-table{width:100%;border-collapse:collapse;font-size:15px}
table.sx-table th{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--ink-3);text-align:left;padding:0 10px 12px;border-bottom:1px solid var(--line)}
table.sx-table td{padding:16px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
table.sx-table td.num,table.sx-table th.num{text-align:right;white-space:nowrap}
table.sx-table img{width:70px;height:78px;object-fit:cover;border-radius:10px;background:var(--bg-2)}
table.sx-table .pname{font-weight:600;color:var(--ink)}
table.sx-table .pname a{color:inherit;text-decoration:none}
table.sx-table .pname small{display:block;font-weight:400;color:var(--ink-3);font-size:12.5px;margin-top:3px}
table.sx-table .rm{background:none;border:none;color:var(--ink-3);cursor:pointer;font-size:20px;line-height:1;padding:4px 8px}
table.sx-table .rm:hover{color:var(--red)}
.sx-totals{width:100%;font-size:15px}
.sx-totals td{padding:9px 0;border-bottom:1px solid var(--line-soft)}
.sx-totals td:last-child{text-align:right;white-space:nowrap}
.sx-totals tr.total td{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--green);border-bottom:none;padding-top:14px}
.sx-totals tr.total td small{display:block;font-family:var(--font-body);font-size:12px;font-weight:400;color:var(--ink-3)}
.sx-totals tr.muted td{font-size:12.5px;color:var(--ink-3);border-bottom:none;padding:2px 0}

/* qty */
.sx-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.sx-qty button{width:34px;height:36px;background:none;border:none;cursor:pointer;font-size:18px;color:var(--ink-2)}
.sx-qty input{width:40px;text-align:center;border:none;background:none;font:inherit;font-weight:600;-moz-appearance:textfield}
.sx-qty input::-webkit-inner-spin-button{-webkit-appearance:none}

/* coupon */
.sx-coupon{display:flex;gap:10px;margin-top:18px}
.sx-coupon input{flex:1;border:1px solid var(--line);border-radius:999px;padding:12px 18px;font:inherit;background:var(--white)}
.sx-coupon .btn{padding:12px 22px}
.sx-tag{display:inline-flex;align-items:center;gap:6px;background:var(--bg-2);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;color:var(--green)}
.sx-tag a{color:var(--red);text-decoration:none}

/* forms */
.sx-form .field{margin-bottom:16px}
.sx-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sx-form label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px;font-weight:600}
.sx-form input[type=text],.sx-form input[type=email],.sx-form input[type=tel],.sx-form input[type=password],.sx-form input[type=number],.sx-form input[type=url],.sx-form select,.sx-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px 15px;font:inherit;font-size:15px;background:var(--white);color:var(--ink);transition:border-color .2s}
.sx-form input:focus,.sx-form select:focus,.sx-form textarea:focus{outline:none;border-color:var(--green)}
.sx-form .check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2);line-height:1.5;margin-bottom:12px}
.sx-form .check input{margin-top:4px;accent-color:var(--green);width:16px;height:16px;flex:none}
.sx-form .hint{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.sx-form .req{color:var(--red)}
.field-error{color:var(--red);font-size:12.5px;margin-top:5px}
.sx-form input.is-invalid,.sx-form select.is-invalid{border-color:var(--red)}

/* payment methods */
.sx-pay{list-style:none;margin:0 0 20px}
.sx-pay li{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--white);transition:border-color .2s}
.sx-pay li.on{border-color:var(--green)}
.sx-pay label{display:flex;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;font-weight:600;color:var(--ink)}
.sx-pay label input{accent-color:var(--green);width:18px;height:18px}
.sx-pay .desc{display:none;padding:0 16px 14px 46px;font-size:13.5px;color:var(--ink-2);line-height:1.55}
.sx-pay li.on .desc{display:block}
.sx-pay .pp{font-style:italic;font-weight:800;color:#253B80}.sx-pay .pp b{color:#179BD7}
.sx-cards{display:inline-flex;gap:5px;margin-left:auto}
.sx-cards span{font-size:10px;font-weight:700;letter-spacing:.06em;border:1px solid var(--line);border-radius:4px;padding:2px 6px;color:var(--ink-2);background:var(--ivory)}

/* order review mini */
.sx-review .line{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:14.5px}
.sx-review .line span:last-child{white-space:nowrap}
.sx-review .line small{color:var(--ink-3);display:block;font-size:12px}
.sx-legal{font-size:13px;color:var(--ink-2);line-height:1.6;margin:16px 0}
.sx-legal a{color:var(--green);text-decoration:underline}
#place_order{width:100%;justify-content:center;font-size:16px;padding:18px 24px;margin-top:8px}

/* thank you */
.danke-hero .meta{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px auto 0;max-width:820px;text-align:left}
.danke-hero .meta div{background:var(--ivory);border:1px solid var(--line-soft);border-radius:12px;padding:14px 16px}
.danke-hero .meta span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.danke-hero .meta strong{font-size:15px;color:var(--ink)}
.bankbox{background:var(--white);border:1px dashed var(--gold);border-radius:12px;padding:20px 22px;margin-top:20px}
.bankbox dl{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;font-size:15px}
.bankbox dt{color:var(--ink-3);font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding-top:3px}
.bankbox dd{font-weight:600;font-variant-numeric:tabular-nums}
.bankbox .copy{font-size:12px;color:var(--gold-3);cursor:pointer;background:none;border:none;margin-left:8px;text-decoration:underline}

/* account */
.acct-grid{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start}
.acct-nav{list-style:none;background:var(--ivory);border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden}
.acct-nav a{display:block;padding:14px 20px;color:var(--ink-2);text-decoration:none;font-size:14.5px;border-bottom:1px solid var(--line-soft);transition:background .2s}
.acct-nav a:hover{background:var(--bg-2)}
.acct-nav a.active{background:var(--green);color:var(--ivory);font-weight:600}
.acct-nav li:last-child a{border-bottom:none}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--bg-2);color:var(--ink-2)}
.badge--pending,.badge--on_hold,.badge--unpaid{background:#F3E8CF;color:#8C6D2C}
.badge--processing,.badge--paid{background:#DCEBE1;color:#1E3D2F}
.badge--shipped{background:#DCE7F3;color:#24466B}
.badge--completed{background:#1E3D2F;color:#FBF8F1}
.badge--cancelled,.badge--failed,.badge--refunded,.badge--rejected,.badge--blocked{background:#F2DAD5;color:#A23E2C}
.badge--active{background:#DCEBE1;color:#1E3D2F}
.addr-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.addr-grid address{font-style:normal;line-height:1.7;color:var(--ink-2);font-size:14.5px}
.timeline{list-style:none;border-left:2px solid var(--line);margin:6px 0 0 6px;padding-left:20px}
.timeline li{position:relative;padding-bottom:16px;font-size:14px;color:var(--ink-2)}
.timeline li::before{content:"";position:absolute;left:-26px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--gold)}
.timeline li time{display:block;font-size:12px;color:var(--ink-3)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px}
.stat{background:var(--ivory);border:1px solid var(--line-soft);border-radius:12px;padding:18px 20px}
.stat span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.stat strong{font-family:var(--font-display);font-size:28px;color:var(--green);font-weight:600}
.reflink{display:flex;gap:10px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:8px 8px 8px 16px;margin:10px 0 6px}
.reflink code{flex:1;font-size:13.5px;color:var(--green);word-break:break-all}
.reflink button{flex:none}
.auth-wrap{max-width:460px;margin:0 auto}
.auth-wrap .sx-card{padding:36px 38px}
.auth-wrap .alt{text-align:center;margin-top:18px;font-size:14px;color:var(--ink-2)}
.auth-wrap .alt a{color:var(--green);font-weight:600}
.btn--sm{padding:9px 18px;font-size:12.5px}
.btn--danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn--danger:hover{background:#7f2f22}
.text-muted{color:var(--ink-3)}
.mt-0{margin-top:0}.mt-2{margin-top:16px}.mt-3{margin-top:28px}.mb-2{margin-bottom:16px}
.flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.space{justify-content:space-between}
.pagination{display:flex;gap:6px;justify-content:center;margin-top:30px}
.pagination a,.pagination span{padding:8px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink-2);font-size:14px}
.pagination span.cur{background:var(--green);color:var(--ivory);border-color:var(--green)}
.empty{text-align:center;padding:60px 20px;color:var(--ink-2)}
.empty svg{width:56px;height:56px;stroke:var(--gold);fill:none;stroke-width:1.3;margin-bottom:16px}
@media (max-width:920px){.sx-grid,.acct-grid{grid-template-columns:1fr}.sx-sticky{position:static}.danke-hero .meta{grid-template-columns:1fr 1fr}.sx-form .row,.addr-grid{grid-template-columns:1fr}table.sx-table th:nth-child(3),table.sx-table td:nth-child(3){display:none}.sx-card{padding:22px 18px}.bankbox dl{grid-template-columns:1fr}}

/* Three products side by side on desktop (2 → tablet, 1 → mobile) */
.products-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 1060px) { .products-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (max-width: 640px) { .products-grid--3 { grid-template-columns: 1fr; } }
