/* Approved 03B inventory cards. */
.sov-portrait-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.sov-portrait-card{position:relative;isolation:isolate;container-type:inline-size;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:#171717;color:#fff;--pad:16px;--bottom:18px;--rail:21px;--rail-gap:7px}
.sov-portrait-media{position:absolute;inset:0;z-index:0}.sov-portrait-media>img,.sov-portrait-media>.w-machine-placeholder,.sov-result-preview{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;border:0}.sov-portrait-media>img{z-index:1;transition:opacity .2s}.sov-portrait-card[data-video-state=playing] .sov-portrait-media>img{opacity:0}.sov-result-preview{pointer-events:none}
/* Clear, untinted upper media; neutral black fades in only behind the lower copy. */
.sov-portrait-card:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent 44%,#000000ba 65%,#000000fa 100%)}
.sov-portrait-link{position:absolute;inset:0;z-index:2;border-radius:inherit}.sov-portrait-link:focus-visible{outline:3px solid #c8dbbc;outline-offset:-4px}
.sov-portrait-copy{position:absolute;z-index:3;inset:auto var(--pad) var(--bottom);pointer-events:none}
.sov-portrait-copy .pill{position:absolute;right:calc(-1 * var(--pad));bottom:calc(100% + 15px);padding:6px 12px;min-height:0;height:auto;max-width:100%;margin:0;border:1px solid #d8e5cc;border-right:0;border-radius:5px 0 0 5px;background:#d8e5cc;color:#263c2b;text-transform:uppercase;white-space:nowrap;font:600 11px/1.15 'DM Sans',var(--font-body);letter-spacing:.02em;box-shadow:none;text-shadow:none}
.sov-portrait-identity{position:relative;padding-left:calc(var(--rail) + var(--rail-gap))}.sov-portrait-year-rail{position:absolute;inset:0 auto 0 0;width:var(--rail);display:flex;align-items:center;overflow:hidden}.sov-portrait-year{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font:700 var(--identity-size,19px)/1 'Big Shoulders Display',var(--font-label);letter-spacing:.03em;text-transform:uppercase;color:#c8dbbc}
.sov-portrait-model-price{container-type:inline-size;display:flex;flex-direction:column;gap:7px;min-width:0;text-align:right}.sov-portrait-copy h2{margin:0!important;color:#fff!important;font:400 var(--model-size,clamp(25px,13cqw,36px))/1.04 'Abel',sans-serif;letter-spacing:.035em;text-transform:uppercase;text-shadow:0 1px 3px #0008;overflow-wrap:anywhere}.sov-model-line{display:block;white-space:nowrap}.sov-portrait-price{border-top:1px solid #c8dbbc61;padding-top:7px;font:700 clamp(22px,32cqw,37px)/1.02 'Big Shoulders Display',var(--font-label);letter-spacing:-.015em;color:#fff;white-space:nowrap}
@media(min-width:761px){.sov-portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.sov-portrait-card{--pad:14px;--bottom:15px;--rail:24px;--rail-gap:10px}.sov-portrait-copy h2{font-size:var(--model-size,clamp(24px,13cqw,36px))}.sov-portrait-copy .pill{bottom:calc(100% + 17px);padding:5px 12px 5px 10px;font-size:10px}}
@media(min-width:1000px){.sov-portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}}@media(min-width:1400px){.sov-portrait-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.sov-portrait-media>img{transition:none}}
/* Badge: cover line in Big Shoulders over a soft top shade, sage rule above. Approved October 21, 2026. */
.sov-portrait-badge{position:absolute;z-index:3;top:0;left:0;right:0;padding:calc(var(--pad) + 4px) var(--pad) 50px;background:linear-gradient(180deg,rgb(20 18 17 / .78),rgb(20 18 17 / .44) 55%,transparent);pointer-events:none;color:#fff;font:800 clamp(23px,7.4cqw,40px)/1 'Big Shoulders Display','Arial Narrow',sans-serif;letter-spacing:.02em;text-transform:uppercase;text-shadow:0 2px 14px rgb(0 0 0 / .45)}
.sov-portrait-badge:before{content:'';display:block;width:34px;height:4px;margin-bottom:10px;background:#B9CABF;transform-origin:left center}
.sov-portrait-badge-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;max-width:20ch}
@media(prefers-reduced-motion:no-preference){.sov-badge-motion .sov-portrait-badge:not(.is-in){opacity:0}.sov-badge-motion .sov-portrait-badge.is-in{animation:sov-badge-fade .3s ease-out both}.sov-badge-motion .sov-portrait-badge.is-in .sov-portrait-badge-text{animation:sov-badge-rise .42s .06s cubic-bezier(.2,.8,.3,1) both}.sov-badge-motion .sov-portrait-badge.is-in:before{animation:sov-badge-grow .38s .16s cubic-bezier(.2,.8,.3,1) both}}
@keyframes sov-badge-fade{from{opacity:0}to{opacity:1}}
@keyframes sov-badge-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes sov-badge-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
