/* Approved shared principle for catalogue cards; photo/SKU data and links are untouched. */
body.g-preview a.cv-image-card{display:block;position:relative;isolation:isolate;overflow:hidden;padding:0!important;min-width:0;text-decoration:none!important;background:transparent}
body.g-preview a.cv-image-card>:is(.collection-image,.product-image,figure,img){margin:0!important}
body.g-preview a.cv-image-card::after{content:"";position:absolute;inset:20% 0 0;z-index:1;pointer-events:none;background:linear-gradient(transparent,rgba(0,0,0,.8))}
body.g-preview a.cv-image-card>.cv-card-overlay{position:absolute;inset:auto 0 0;z-index:2;max-height:90%;overflow:auto;scrollbar-width:thin;padding:clamp(16px,2vw,32px)!important;box-sizing:border-box;color:white}
body.g-preview .cv-card-overlay .cv-card-meta{font:400 11px/1.4 var(--font-ui);color:#ffffffbd;margin:0 0 8px}
body.g-preview .cv-card-overlay .cv-card-title{font:300 clamp(22px,1.65vw,30px)/1.15 var(--font-ui)!important;color:white!important;letter-spacing:-.02em;margin:0!important;padding:0!important;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
body.g-preview .cv-card-info{max-height:0;visibility:hidden;opacity:0;transform:translateY(36px);overflow:hidden;transition:opacity .9s ease,transform 1.2s cubic-bezier(.22,1,.36,1),max-height .9s cubic-bezier(.22,1,.36,1),visibility .9s}
body.g-preview .cv-card-info p{font:400 14px/1.5 var(--font-ui);color:white;margin:12px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
body.g-preview .cv-card-action{display:block;font:400 13px/1.4 var(--font-ui);margin-top:14px;color:white}
body.g-preview a.cv-image-card:is(.is-info-open,:focus-visible) .cv-card-info{opacity:1;transform:none;max-height:360px;visibility:visible}
body.g-preview a.cv-image-card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
@media(hover:hover) and (pointer:fine){body.g-preview a.cv-image-card:hover .cv-card-info{opacity:1;transform:none;max-height:360px;visibility:visible}}
@media(max-width:760px){body.g-preview .cv-card-overlay .cv-card-title{font-size:24px!important}body.g-preview .cv-card-info p{font-size:13px;-webkit-line-clamp:2}}
@media(prefers-reduced-motion:reduce){body.g-preview .cv-card-info{transition:none;transform:none}}

body.g-preview .cv-card-overlay .cv-card-title,body.g-preview .cv-card-overlay .cv-card-title *{text-decoration:none!important;background-image:none!important;box-shadow:none!important}

@media(max-width:600px){
 body.g-preview :is(.product-grid,.collection-grid):has(>a.cv-image-card){grid-template-columns:minmax(0,1fr)!important}
}

/* Shared project-on-image disclosure; no information opens below the banner. */
body.g-preview .cv-project-image-card{position:relative;min-width:0}
body.g-preview .cv-project-image-card>summary{position:relative;list-style:none}
body.g-preview .cv-project-image-card figure{position:relative;margin:0;isolation:isolate}
body.g-preview .cv-project-image-card figure::after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.85));pointer-events:none}
body.g-preview .cv-project-image-card .cv-card-overlay{position:absolute;inset:auto 0 0;z-index:2;max-height:90%;overflow:auto;padding:var(--text-gutter);box-sizing:border-box;color:white}
body.g-preview .cv-project-image-card>summary>.mc-text-link,body.g-preview .cv-project-image-card>.mc-project-body{display:none}
body.g-preview .cv-project-image-card:is([open],:focus-within) .cv-card-info{opacity:1;transform:none;max-height:420px;visibility:visible}
body.g-preview .cv-project-image-card .mc-material-links{margin:12px 0;border-color:#ffffff80}
body.g-preview .cv-project-image-card .mc-material-links a{color:white;border-color:#ffffff50;font-size:14px;min-height:36px;padding:6px 0}
body.g-preview .cv-project-image-card .cv-card-info p{display:block;-webkit-line-clamp:unset;font-size:12px}
@media(hover:hover) and (pointer:fine){body.g-preview .cv-project-image-card:hover .cv-card-info{opacity:1;transform:none;max-height:420px;visibility:visible}}
body.g-preview .mc-project-grid:has(>.mc-project:only-child){max-width:none}
body.g-preview .mc-projects{scroll-margin-top:160px}
body.g-preview .cv-project-image-card .mc-material-links{display:flex;flex-wrap:wrap;gap:4px 20px;padding-top:10px}
body.g-preview .cv-project-image-card .mc-material-links a{display:inline-flex;gap:8px;min-height:30px;border:0;padding:2px 0}
body.g-preview .cv-project-image-card .mc-material-links a>span{font-size:18px}

/* Owner 12.11: the WHOLE caption rises from below, including identity. */
body.g-preview main :is(.pb-hover-card,.cv-image-card,.cv-project-image-card){overflow:hidden}
body.g-preview main :is(.pb-project-overlay,.cv-card-overlay){
 opacity:0;visibility:hidden;transform:translateY(100%);pointer-events:none;
 transition:transform 1100ms cubic-bezier(.22,1,.36,1),opacity 700ms ease,visibility 1100ms;
}
body.g-preview main :is(.pb-overlay-info,.cv-card-info){max-height:none!important;opacity:1!important;visibility:inherit!important;transform:none!important;transition:none!important}
body.g-preview main :is(.pb-hover-card,.cv-project-image-card):is([open],:focus-within,.is-info-open) :is(.pb-project-overlay,.cv-card-overlay),
body.g-preview main .cv-image-card:is(:focus-visible,.is-info-open)>.cv-card-overlay{
 opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;
}
body.g-preview main :is(.pb-hover-card,.cv-image-card,.cv-project-image-card) img{transform:scale(1);transform-origin:center;transition:transform 1100ms cubic-bezier(.22,1,.36,1)}
body.g-preview main :is(.pb-hover-card,.cv-project-image-card):is([open],:focus-within,.is-info-open) img,
body.g-preview main .cv-image-card:is(:focus-visible,.is-info-open) img{transform:scale(1.045)}
body.g-preview main :is(.pb-hover-card>summary>figure,.pb-linked-project figure,.cv-project-image-card figure,.cv-image-card)::after{opacity:0;transition:opacity 700ms ease}
body.g-preview main :is(.pb-hover-card,.cv-project-image-card):is([open],:focus-within,.is-info-open) figure::after,
body.g-preview main .cv-image-card:is(:focus-visible,.is-info-open)::after{opacity:1}
body.g-preview main .pb-photo-statement{opacity:0;visibility:hidden;transform:translateY(36px);transition:transform 1100ms cubic-bezier(.22,1,.36,1),opacity 700ms ease,visibility 1100ms}
body.g-preview main .pb-hover-card:is([open],:focus-within,.is-info-open) .pb-photo-statement{opacity:1;visibility:visible;transform:none}
@media(hover:hover) and (pointer:fine){
 body.g-preview main :is(.pb-hover-card,.cv-image-card,.cv-project-image-card):hover :is(.pb-project-overlay,.cv-card-overlay){opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
 body.g-preview main :is(.pb-hover-card,.cv-image-card,.cv-project-image-card):hover img{transform:scale(1.045)}
 body.g-preview main :is(.pb-hover-card,.cv-project-image-card):hover figure::after,body.g-preview main .cv-image-card:hover::after{opacity:1}
 body.g-preview main .pb-hover-card:hover .pb-photo-statement{opacity:1;visibility:visible;transform:none}
}
/* Home direction banners use their existing caption and link, with the same reveal. */
body.g-preview.g-home main #selectii .ce-direction-card .cv-direction-caption{opacity:0!important;visibility:hidden;transform:translateY(100%)!important;transition:transform 1100ms cubic-bezier(.22,1,.36,1),opacity 700ms ease,visibility 1100ms}
body.g-preview.g-home main #selectii .ce-direction-card :is(.cv-direction-title span,.ce-direction-copy){opacity:1!important;transform:none!important}
body.g-preview.g-home main #selectii .ce-direction-card:is(:focus-visible,.is-info-open) .cv-direction-caption{opacity:1!important;visibility:visible;transform:translateY(0)!important}
body.g-preview.g-home main #selectii .ce-direction-card:is(:focus-visible,.is-info-open) img{transform:scale(1.045)}
@media(hover:hover) and (pointer:fine){body.g-preview.g-home main #selectii .ce-direction-card:hover .cv-direction-caption{opacity:1!important;visibility:visible;transform:translateY(0)!important}}
@media(prefers-reduced-motion:reduce){
 body.g-preview main :is(.pb-project-overlay,.cv-card-overlay,.pb-photo-statement){transition:none;transform:none}
 body.g-preview main :is(.pb-hover-card,.cv-image-card,.cv-project-image-card) img{transition:none!important;transform:none!important}
 body.g-preview.g-home main #selectii .ce-direction-card .cv-direction-caption{transition:none;transform:none!important}
}
