/* dmt-cart.css — cart drawer + policy/exchange modals for dmt-home.html.
   Generated subset of dmt-system.css (same class names), so the home page
   gets the identical drawer without loading the full system stylesheet. */
:root{--ok:#1f7a3a; --danger:#c0341d; --border-thin:1.5px; --ease-out:cubic-bezier(.16,1,.3,1); --t-fast:.15s; --t-med:.35s; --m-deep:#004056;}
.pc-size-err{font-family:var(--mono); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--danger); margin-top:8px;}
.pc-details{display:inline-block; align-self:flex-start; margin-top:2px; font-family:var(--mono); font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; text-decoration:underline; text-underline-offset:3px;}
.pc-details:hover{color:var(--m-red);}
.pc-name a:hover{color:var(--m-red);}
.pc-photos img{cursor:pointer !important;}
.icon-btn.cart-btn{border:none; cursor:pointer;}
@media (max-width:980px){
  .pc-size{min-width:44px; min-height:44px; font-size:12px !important;}
  .pc-fit{min-height:40px; padding:0 14px !important; font-size:11px !important;}
  .pc-color{width:32px !important; height:32px !important;}
  .pc-sizes,.pc-colors{flex-wrap:wrap; gap:8px !important;}
  .pc-cta{min-height:48px;}
  .pc-details{padding:8px 0;}
}
@keyframes cartBump{0%{transform:scale(1)}30%{transform:scale(1.08)}100%{transform:scale(1)}}
.mono{font-family:var(--mono);}
.cart-count{display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 5px; background:var(--m-red); color:var(--white); font-size:10px;}
.cart-count[data-count="0"]{background:var(--grey-300); color:var(--black);}
.cart-btn.bump{animation:cartBump .5s var(--ease-out);}
.scrim{position:fixed; inset:0; z-index:90; background:rgba(10,10,10,.55); opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s;}
.scrim.is-open{opacity:1; visibility:visible; transition:opacity .3s ease;}
body.no-scroll{overflow:hidden;}
.panel{position:fixed; top:0; right:0; bottom:0; z-index:91; width:min(86vw,420px); background:var(--white); border-left:var(--border-w-lg) solid var(--black); transform:translateX(100%); transition:transform var(--t-med) var(--ease-out); display:flex; flex-direction:column; overflow-y:auto;}
.panel.is-open{transform:translateX(0);}
.panel-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:var(--border-w) solid var(--black);}
.panel-label{font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;}
.x-btn{width:40px; height:40px; border:var(--border-w) solid var(--black); background:var(--white); color:var(--black); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; font-family:var(--mono); font-size:18px; line-height:1;}
.x-btn:hover{background:var(--m-yellow);}
.btn.accent{background:var(--m-red); border-color:var(--black); color:var(--white);}
.btn.accent:hover{background:var(--black); color:var(--m-red);}
.btn.block{width:100%;}
.link{font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; text-decoration:underline; text-underline-offset:3px; background:none; border:none; cursor:pointer; padding:0;}
.link:hover{color:var(--m-red);}
.tag{display:inline-block; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:5px 9px; background:var(--m-red); color:#fff;}
.tag.teal{background:var(--m-teal);}
.tag.yellow{background:var(--m-yellow); color:#0a0a0a;}
.tag.black{background:var(--black);}
.tag.ok{background:var(--ok);}
.pc-media .tag{position:absolute; top:12px; left:12px; z-index:2;}
.opt-label{font-family:var(--mono); font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--grey-700);}
.opt-label b{color:var(--black);}
.fit-toggle{display:inline-flex; align-self:flex-start; border:var(--border-thin) solid var(--black);}
.fit-toggle button{font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:9px 16px; background:var(--white); border:none; cursor:pointer;}
.fit-toggle button + button{border-left:var(--border-thin) solid var(--black);}
.fit-toggle button[aria-pressed="true"]{background:var(--black); color:var(--white);}
.size-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); gap:6px;}
.size-btn{font-family:var(--mono); font-size:12px; font-weight:700; padding:12px 6px; background:var(--white); border:var(--border-thin) solid var(--black); cursor:pointer; text-align:center;}
.size-btn:hover{background:var(--grey-050);}
.size-btn[aria-pressed="true"]{background:var(--black); color:var(--white);}
.size-btn .sub{display:block; font-size:9px; font-weight:400; opacity:.7; margin-top:2px;}
.qty{display:inline-flex; border:var(--border-thin) solid var(--black); align-items:stretch;}
.qty button{width:34px; background:var(--white); border:none; cursor:pointer; font-family:var(--mono); font-weight:700; font-size:14px;}
.qty button:hover{background:var(--m-yellow);}
.qty span{min-width:30px; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:700; font-size:12px; border-left:var(--border-thin) solid var(--black); border-right:var(--border-thin) solid var(--black);}
.notice{border:var(--border-w) solid var(--black); background:var(--grey-050); padding:14px 16px; font-family:var(--mono); font-size:11.5px; line-height:1.6; display:flex; gap:12px; align-items:flex-start;}
.notice .ico{flex-shrink:0; min-width:22px; height:22px; padding:0 4px; background:var(--m-yellow); border:var(--border-thin) solid var(--black); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px;}
.notice b{text-transform:uppercase; letter-spacing:.04em;}
.notice.teal{background:var(--m-teal); color:#fff;}
.acc{border-top:var(--border-w) solid var(--black);}
.acc details{border-bottom:var(--border-thin) solid var(--black);}
.acc summary{list-style:none; cursor:pointer; padding:16px 0; font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; display:flex; justify-content:space-between; align-items:center;}
.acc summary::-webkit-details-marker{display:none;}
.acc summary::after{content:"+"; font-size:18px;}
.acc details[open] summary::after{content:"–";}
.acc .acc-body{padding:0 0 18px; font-size:14.5px; line-height:1.7; color:var(--grey-900);}
.acc .acc-body ul{padding-left:18px;}
.spec-rows{font-family:var(--mono); font-size:12px; text-transform:uppercase; display:flex; flex-direction:column; gap:6px;}
.spec-rows .row{display:flex; gap:14px;}
.spec-rows .lab{width:110px; flex-shrink:0; font-weight:700;}
.modal{position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .25s ease, visibility 0s linear .25s;}
.modal.is-open{opacity:1; visibility:visible; transition:opacity .25s ease;}
.modal-bg{position:absolute; inset:0; background:rgba(10,10,10,.7);}
.modal-box{position:relative; z-index:2; background:var(--white); border:var(--border-w-lg) solid var(--black); width:min(760px,100%); max-height:88vh; overflow:auto;}
.modal-box .panel-head{position:sticky; top:0; background:var(--white); z-index:2;}
.modal-body{padding:24px;}
.tbl{width:100%; border-collapse:collapse; font-family:var(--mono); font-size:12px;}
.tbl th,.tbl td{border:var(--border-thin) solid var(--black); padding:10px 12px; text-align:center;}
.tbl th{background:var(--black); color:var(--white); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;}
.tbl td:first-child{font-weight:700; background:var(--grey-050);}
.tbl-scroll{overflow-x:auto;}
.cart-lines{flex:1; overflow-y:auto;}
.cart-line{display:grid; grid-template-columns:78px 1fr auto; gap:14px; padding:16px 20px; border-bottom:var(--border-thin) solid var(--grey-300);}
.cart-line img{width:78px; height:100px; object-fit:cover; border:var(--border-thin) solid var(--black);}
.cl-name{font-weight:900; text-transform:uppercase; font-size:14px; line-height:1.1;}
.cl-meta{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; color:var(--grey-700); margin:6px 0 10px; line-height:1.5;}
.cl-price{font-family:var(--mono); font-weight:700; font-size:13px; text-align:right;}
.cl-remove{margin-top:8px; display:block;}
.cart-empty{padding:40px 20px; text-align:center; font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--grey-700); display:flex; flex-direction:column; gap:18px; align-items:center;}
.cart-foot{border-top:var(--border-w) solid var(--black); padding:18px 20px 22px; display:flex; flex-direction:column; gap:12px; background:var(--white);}
.sum-row{display:flex; justify-content:space-between; font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.04em;}
.sum-row.big{font-size:15px; font-weight:700;}
.sum-row.due{background:var(--m-yellow); padding:10px 12px; border:var(--border-thin) solid var(--black); font-weight:700;}
.toast{position:fixed; left:50%; bottom:24px; transform:translate(-50%,calc(100% + 60px)); visibility:hidden; z-index:130; background:var(--black); color:var(--white); border:var(--border-w) solid var(--m-yellow); padding:14px 20px; font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; transition:transform .35s var(--ease-out), visibility 0s linear .35s;}
.toast.show{transform:translate(-50%,0); visibility:visible; transition:transform .35s var(--ease-out);}
.cl-run{font-family:var(--mono); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--m-teal); margin:-4px 0 10px; line-height:1.45;}
.cl-run.locks{color:var(--ok);}
.oline-top .cl-meta{margin-bottom:0;}
.tag.teal{background:var(--m-teal);}
.fit-toggle.sm button{padding:6px 12px; font-size:10px;}
.pc-sizes-grid .size-btn{flex:1 0 44px; max-width:72px; padding:8px 0; font-size:11px;}
.pc-sg{align-self:flex-start; font-size:10.5px;}
@media (max-width:980px){ .pc-sizes-grid .size-btn{min-height:44px;} .fit-toggle.sm button{min-height:40px; padding:0 16px;} }
.pc-hint{font-family:var(--mono); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--m-teal); line-height:1.5;}
.size-grid.waist{grid-template-columns:repeat(4,1fr);}
.cl-hem{display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-family:var(--mono); font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; margin:-2px 0 10px; cursor:pointer;}
.cl-hem input{width:16px; height:16px; accent-color:var(--black);}
.cl-hem span{flex-basis:100%; font-weight:400; color:var(--grey-700); font-size:9.5px; padding-left:24px;}
.cl-run.stock{color:var(--ok);}
