/* Purchase flow 1.1.0. Scoped cards; native Editorial layout and publication theme preserved. */
.opp-admin{max-width:1280px;margin-inline:auto}.opp-section{border:1px solid var(--bs-border-color,#b7bcc1);border-radius:.65rem;margin-bottom:1.1rem;color:var(--bs-body-color,#212529);background:var(--bs-body-bg,#fff)}.opp-section>summary{cursor:pointer;padding:1rem 1.2rem;font-size:1.05rem;font-weight:650;line-height:1.45;color:inherit;background:transparent}.opp-section[open]>summary{border-bottom:1px solid var(--bs-border-color,#b7bcc1)}.opp-section-body{padding:1.2rem}.opp-section .opp-section{box-shadow:none;margin-top:.8rem;border-radius:.45rem}.opp-section .opp-section>summary{font-size:.95rem;padding:.85rem 1rem}.opp-section>summary:focus-visible,.opp-card a:focus-visible{outline:3px solid var(--bs-primary,#0d6efd);outline-offset:3px}.opp-products{clear:both;margin-block:1.4rem;color:var(--bs-body-color,#212529)}.opp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem}.opp-card{min-width:0;padding:1.1rem;border:1px solid var(--bs-border-color,#b7bcc1);border-radius:.65rem;background:var(--bs-body-bg,#fff);color:var(--bs-body-color,#212529);overflow-wrap:anywhere}.opp-card-kind{font-size:.76rem;font-weight:600;margin-bottom:.75rem}.opp-card-title{font-size:1.1rem;line-height:1.4;margin-block:.65rem}.opp-card-title a{color:inherit;text-decoration:none}.opp-card-title a:hover{text-decoration:underline}.opp-card-image{display:block;margin-block:.5rem}.opp-card-image img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;margin:auto}.opp-card-description{font-size:.94rem;line-height:1.6}.opp-price{font-size:1.3rem;font-weight:700;margin-bottom:.25rem}.opp-small{font-size:.82rem;line-height:1.55;color:inherit;opacity:.88}.opp-editorial-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem}.opp-editorial-main{min-width:0}.opp-editorial-sidebar{min-width:0}.opp-editorial-sidebar .opp-grid{grid-template-columns:1fr}.opp-editorial-sidebar .opp-products{margin-top:0}@media(max-width:991px){.opp-editorial-layout{display:block}.opp-editorial-sidebar{margin-top:1.5rem}}@media(max-width:575px){.opp-section-body{padding:1rem}.opp-section>summary{padding:1rem}.opp-admin .table td,.opp-admin .table th{white-space:normal;min-width:80px}}@media print{.opp-editorial-layout{display:block}.opp-products{break-inside:avoid}.opp-section{break-inside:avoid}}

/* Each card responds to its own column, not the browser viewport. Older engines remain stacked. */
.opp-card-shell{container-name:oppcard;container-type:inline-size;min-width:0;max-width:100%}
.opp-card,.opp-card *{box-sizing:border-box}
.opp-card-content{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem}
.opp-card-media{width:var(--opp-stack-image-width,100%);max-width:100%;margin:0 auto;min-width:0}
.opp-card-image{margin:0;width:100%}
.opp-card-copy{min-width:0;max-width:100%}
.opp-card-copy .btn{white-space:normal;overflow-wrap:anywhere;max-width:100%;height:auto}
.opp-card-copy .opp-card-title{margin-top:0}
.opp-card-media figcaption{margin-top:.35rem}
.opp-card-kind{overflow-wrap:anywhere}
@container oppcard (min-width:34rem){
 .opp-has-image:is(.opp-layout-auto,.opp-layout-side_by_side) .opp-card-content{grid-template-columns:minmax(0,min(var(--opp-image-column,35%),65%)) minmax(0,1fr)}
 .opp-has-image:is(.opp-layout-auto,.opp-layout-side_by_side) .opp-card-media{width:100%;margin:0}
}
.opp-context{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--bs-border-color,#b7bcc1);border-left:4px solid var(--bs-primary,#0d6efd);padding:1rem;border-radius:.5rem;margin-bottom:1.2rem}
.opp-context>div{min-width:0;flex:1 1 24rem;overflow-wrap:anywhere}
.opp-linked-product{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;border-bottom:1px solid var(--bs-border-color,#b7bcc1);padding:.75rem 0}
.opp-linked-product>a:first-child{flex:1 1 16rem;min-width:0;overflow-wrap:anywhere}
.opp-preview-controls{display:flex;flex-wrap:wrap;gap:1rem}
.opp-preview-controls>label{flex:1 1 15rem;min-width:0}
.opp-preview-narrow{width:300px;max-width:100%}
.opp-preview-wide{width:100%;max-width:960px}
[data-opp-preview] .opp-card a:not([href]){cursor:default}
.opp-admin .form-control,.opp-admin .form-select{max-width:100%;min-width:0}
@media(max-width:575px){.opp-card{padding:.85rem}.opp-card-content{gap:.75rem}.opp-context{padding:.85rem}.opp-preview-controls>label{flex-basis:100%}}
