/* ============ EMBEDDED CHECKOUT MODAL ============ */
.co-scrim{
  position:fixed; inset:0; z-index:200; background:rgba(27,26,24,.62);
  backdrop-filter:blur(4px); display:none; padding:clamp(12px,4vw,40px);
  overflow-y:auto; align-items:flex-start; justify-content:center;
}
.co-scrim.open{display:flex}
.co-panel{
  background:var(--paper); width:100%; max-width:940px; margin:auto;
  box-shadow:var(--shadow-lg); position:relative;
  display:grid; grid-template-columns:340px minmax(0,1fr);
  animation:coIn .45s var(--ease);
}
@keyframes coIn{from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none}}
@media(max-width:820px){ .co-panel{grid-template-columns:1fr} }

.co-close{
  position:absolute; top:10px; right:10px; z-index:3; width:36px; height:36px;
  border:0; background:var(--paper-2); color:var(--ink); cursor:pointer;
  font-size:1.1rem; line-height:1; border-radius:2px;
}
.co-close:hover{background:var(--paper-3)}

/* summary rail */
.co-sum{background:var(--ink); color:#B9B2A8; padding:clamp(1.6rem,3vw,2.2rem); position:relative; overflow:hidden}
.co-sum::before{content:""; position:absolute; inset:0; background:radial-gradient(500px 320px at 80% 10%, rgba(201,143,121,.24), transparent 62%)}
.co-sum > *{position:relative}
.co-sum .lbl{font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:var(--clay-soft)}
.co-sum h3{color:var(--paper); font-size:1.5rem; margin:.8rem 0 1.2rem; font-family:var(--serif); font-weight:400}
.co-sum ul{list-style:none; margin:0 0 1.6rem; padding:0; display:grid; gap:.55rem}
.co-sum li{display:flex; gap:.6rem; font-size:.84rem; line-height:1.45; color:#CFC7BC}
.co-sum li::before{content:"✓"; color:var(--clay-soft); flex:none}
.co-total{border-top:1px solid #35302B; padding-top:1.1rem; display:flex; align-items:baseline; justify-content:space-between}
.co-total .was{text-decoration:line-through; color:#7A736A; font-size:.95rem; margin-right:.5rem}
.co-total b{font-family:var(--serif); font-size:2.3rem; color:var(--paper); line-height:1}
.co-guar{margin-top:1.2rem; font-size:.74rem; color:#8D867C; line-height:1.6}

/* stripe mount */
.co-pay{padding:clamp(1.4rem,3vw,2rem); min-height:420px; display:flex; flex-direction:column}
.co-mount{flex:1}
.co-state{text-align:center; padding:3rem 1.2rem; margin:auto}
.co-state .sp{
  width:30px; height:30px; border:2px solid var(--line-strong); border-top-color:var(--clay);
  border-radius:50%; margin:0 auto 1.2rem; animation:coSpin .8s linear infinite;
}
@keyframes coSpin{to{transform:rotate(360deg)}}
.co-state h4{font-family:var(--serif); font-size:1.4rem; font-weight:400; margin:0 0 .6rem}
.co-state p{font-size:.9rem; color:var(--ink-soft); max-width:38ch; margin:0 auto 1.2rem}

/* success */
.co-done{text-align:center; padding:2.4rem 1.2rem; margin:auto}
.co-done .tick{
  width:54px; height:54px; border-radius:50%; background:var(--sage); color:#fff;
  display:grid; place-items:center; font-size:1.5rem; margin:0 auto 1.4rem;
}
.co-done h4{font-family:var(--serif); font-size:1.8rem; font-weight:400; margin:0 0 .7rem}
.co-key{
  font-family:var(--serif); font-size:1.9rem; letter-spacing:.1em; color:var(--clay);
  background:var(--clay-wash); border:1px dashed var(--clay-soft); padding:1rem 1.2rem;
  margin:1.4rem 0 .6rem; user-select:all; word-break:break-all;
}
