/*
 * Curated bundles (组合销售) — homepage cards + bundle detail page.
 * Loaded on the front page and on bundle page templates only.
 */

/* ================================================================
   HOMEPAGE — "Curated bundles" section
   ================================================================ */
.ly-bundles{
    padding:clamp(48px,6vw,80px) 0 clamp(8px,2vw,16px);
    background:
        radial-gradient(720px 320px at 10% -4%, rgba(47,111,102,.06), transparent 55%),
        radial-gradient(640px 300px at 96% 16%, rgba(180,35,24,.05), transparent 50%),
        #f5f2ea;
    scroll-margin-top:calc(var(--announce-h) + var(--header-h));
}
.ly-bundles-head{
    display:flex;flex-direction:column;gap:10px;
    margin-bottom:clamp(24px,3vw,36px);
    padding-bottom:16px;
    border-bottom:1px solid var(--line);
}
.ly-bundles-sub{
    font-family:var(--display);font-style:italic;font-size:15px;
    color:var(--ink-2);margin:0;max-width:62ch;
}
.ly-bundles-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:clamp(14px,2vw,24px);
}

.ly-bundle-card{
    position:relative;
    display:flex;align-items:flex-end;
    min-height:clamp(360px,52vh,520px);
    overflow:hidden;
    background:#14110d;
    color:#fff;
    border:1px solid rgba(230,230,228,.5);
    cursor:pointer;
}
.ly-bundle-img{
    position:absolute;inset:0;
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.9) contrast(1.04) brightness(.88);
    transition:transform 1s cubic-bezier(.2,.6,.2,1);
}
.ly-bundle-card:hover .ly-bundle-img{transform:scale(1.05)}
.ly-bundle-veil{
    position:absolute;inset:0;
    background:linear-gradient(to top, rgba(12,10,8,.84) 0%, rgba(12,10,8,.32) 46%, rgba(12,10,8,.34) 100%);
    transition:background .5s ease;
}
.ly-bundle-card:hover .ly-bundle-veil{
    background:linear-gradient(to top, rgba(12,10,8,.9) 0%, rgba(12,10,8,.4) 50%, rgba(12,10,8,.4) 100%);
}
.ly-bundle-copy{
    position:relative;z-index:1;
    display:flex;flex-direction:column;align-items:flex-start;
    gap:9px;
    padding:clamp(24px,4vw,42px);
    max-width:46ch;
    transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.ly-bundle-card:hover .ly-bundle-copy{transform:translateY(-4px)}
.ly-bundle-eyebrow{
    font-size:11px;letter-spacing:.24em;text-transform:uppercase;
    color:rgba(255,255,255,.6);
}
.ly-bundle-cn{
    font-family:var(--cn);
    font-size:clamp(32px,4.4vw,48px);
    line-height:1.06;
    letter-spacing:.16em;
    color:rgba(255,255,255,.94);
}
.ly-bundle-title{
    font-family:var(--display);
    font-size:clamp(22px,2.7vw,31px);
    font-weight:500;line-height:1.08;letter-spacing:.01em;
    color:#fff;
}
.ly-bundle-desc{
    font-size:14px;line-height:1.55;
    color:rgba(255,255,255,.78);
    max-width:38ch;
}
.ly-bundle-keywords{
    display:flex;align-items:center;gap:.55em;
    font-family:var(--cn);font-size:15px;letter-spacing:.22em;
    color:#e6c892;
    margin-top:2px;
}
.ly-bundle-keyword-sep{opacity:.5;font-family:var(--sans);font-size:.8em}
.ly-bundle-meta{
    display:flex;align-items:center;flex-wrap:wrap;gap:12px;
    font-size:12px;letter-spacing:.06em;
    color:rgba(255,255,255,.62);
    margin-top:5px;
}
.ly-bundle-value{color:#fff;font-weight:600}
.ly-bundle-cta{
    display:inline-flex;align-items:center;gap:9px;
    font-size:12px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--on-dark);
    border-bottom:1px solid rgba(255,255,255,.45);
    padding-bottom:5px;
    margin-top:10px;
    transition:color .3s,border-color .3s;
}
.ly-bundle-card:hover .ly-bundle-cta{color:#e6c892;border-color:#e6c892}

@media (max-width:760px){
    .ly-bundles-grid{grid-template-columns:1fr}
    .ly-bundle-card{min-height:340px}
    .ly-bundle-cn{font-size:clamp(28px,9vw,38px)}
}

/* ================================================================
   BUNDLE DETAIL PAGE
   ================================================================ */
.oz-bundle-page{background:var(--bg)}

.oz-bundle-hero{
    position:relative;
    color:#fff;
    background:#0c0b0a;
    overflow:hidden;
}
.oz-bundle-hero-img{
    position:absolute;inset:0;
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.9) contrast(1.05) brightness(.82);
}
.oz-bundle-hero-veil{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(9,7,5,.5) 0%, rgba(9,7,5,.66) 55%, rgba(9,7,5,.84) 100%);
}
.oz-bundle-hero-stage{
    position:relative;z-index:1;
    display:flex;flex-direction:column;align-items:center;text-align:center;
    gap:16px;
    max-width:860px;
    margin:0 auto;
    padding:clamp(72px,12vh,140px) clamp(20px,4vw,40px);
}
.oz-bundle-hero-eyebrow{
    margin:0;
    font-size:12px;letter-spacing:.26em;text-transform:uppercase;
    color:rgba(255,255,255,.6);
}
.oz-bundle-hero-cn{
    margin:0;
    font-family:var(--cn);
    font-size:clamp(52px,11vw,124px);
    line-height:1;letter-spacing:.18em;
    color:#fff;
}
.oz-bundle-hero-title{
    margin:0;
    font-family:var(--display);
    font-size:clamp(28px,4.6vw,50px);
    font-weight:400;line-height:1.05;
    color:#fff;
}
.oz-bundle-hero-lead{
    margin:0;
    font-family:var(--display);font-style:italic;
    font-size:clamp(15px,1.8vw,19px);
    letter-spacing:.02em;
    color:rgba(255,255,255,.82);
    max-width:54ch;
}
.oz-bundle-hero-keywords{
    display:flex;align-items:center;justify-content:center;gap:.55em;flex-wrap:wrap;
    font-family:var(--cn);font-size:clamp(15px,1.9vw,22px);
    letter-spacing:.22em;color:#e6c892;margin:4px 0 0;
}
.oz-bundle-hero-kw-sep{opacity:.45;font-family:var(--sans);font-size:.8em}
.oz-bundle-hero-meta{
    display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;
    font-size:12px;letter-spacing:.07em;
    color:rgba(255,255,255,.62);
    margin:8px 0 0;
}
.oz-bundle-hero-value{color:#fff;font-weight:600}

/* Pieces */
.oz-bundle-items{
    padding:clamp(48px,6vw,80px) 0 0;
}
.oz-bundle-items-head{
    display:flex;flex-direction:column;gap:10px;
    margin-bottom:clamp(8px,1vw,12px);
    padding-bottom:16px;
    border-bottom:1px solid var(--line);
}
.oz-bundle-items-title{
    margin:0;
    font-family:var(--display);
    font-size:clamp(26px,3.2vw,34px);
    font-weight:500;letter-spacing:.02em;
}
.oz-bundle-items-sub{
    font-family:var(--display);font-style:italic;
    font-size:15px;color:var(--ink-2);margin:0;max-width:62ch;
}

.oz-bundle-piece{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(20px,4vw,56px);
    align-items:center;
    padding:clamp(28px,4.5vw,52px) 0;
    border-bottom:1px solid var(--line);
}
.oz-bundle-piece.is-flip .oz-bundle-piece-media{order:2}
.oz-bundle-piece-media{
    display:block;
    background:var(--bg-2);
    overflow:hidden;
    border:1px solid var(--line);
    line-height:0;
}
.oz-bundle-piece-media img{
    width:100%;aspect-ratio:4/3;object-fit:cover;
    transition:transform .7s cubic-bezier(.2,.6,.2,1);
}
.oz-bundle-piece-media:hover img{transform:scale(1.04)}
.oz-bundle-piece-body{
    display:flex;flex-direction:column;align-items:flex-start;
    max-width:52ch;
}
.oz-bundle-piece-role{
    display:flex;align-items:baseline;gap:12px;margin:0;
}
.oz-bundle-piece-cn{
    font-family:var(--cn);
    font-size:clamp(28px,3.4vw,42px);
    line-height:1;
    letter-spacing:.08em;
    color:var(--seal);
}
.oz-bundle-piece-en{
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;
    color:var(--ink-3);
}
.oz-bundle-piece-title{
    margin:14px 0 8px;
    font-family:var(--display);
    font-size:clamp(24px,3vw,34px);
    font-weight:500;line-height:1.1;
}
.oz-bundle-piece-title a:hover{color:var(--seal)}
.oz-bundle-piece-price{
    font-size:16px;font-weight:600;letter-spacing:.03em;
    color:var(--ink);
    margin-bottom:12px;
}
.oz-bundle-piece-note{
    margin:0 0 18px;
    font-size:14px;line-height:1.65;
    color:var(--ink-2);
}
.oz-bundle-piece-link{
    display:inline-flex;align-items:center;gap:9px;
    font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink);
    border-bottom:1.5px solid var(--ink);
    padding-bottom:4px;
    transition:color .25s,border-color .25s;
}
.oz-bundle-piece-link:hover{color:var(--seal);border-color:var(--seal)}

/* Total strip */
.oz-bundle-total{
    margin-top:clamp(48px,6vw,80px);
    padding:clamp(56px,7vw,96px) 0;
    background:
        radial-gradient(560px 260px at 50% 0%, rgba(180,35,24,.18), transparent 62%),
        radial-gradient(460px 240px at 14% 100%, rgba(47,111,102,.16), transparent 60%),
        #111111;
    color:#fff;text-align:center;
}
.oz-bundle-total-kicker{
    margin:0 0 12px;
    font-size:12px;letter-spacing:.26em;text-transform:uppercase;
    color:rgba(255,255,255,.55);
}
.oz-bundle-total-value{
    margin:0 0 10px;
    font-family:var(--display);
    font-size:clamp(38px,6vw,60px);
    font-weight:500;
    color:#fff;
}
.oz-bundle-total-copy{
    margin:0 auto 30px;
    max-width:36ch;
    color:rgba(255,255,255,.72);
    font-size:15px;line-height:1.7;
}
.oz-bundle-total-actions{
    display:flex;justify-content:center;gap:12px;flex-wrap:wrap;
}
.oz-bundle-total .btn-primary{background:#fff;color:var(--ink);border-color:#fff}
.oz-bundle-total .btn-primary:hover{background:var(--seal);border-color:var(--seal);color:#fff}
.oz-bundle-total .btn-ghost{border-color:rgba(255,255,255,.5);color:#fff}
.oz-bundle-total .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}

@media (max-width:760px){
    .oz-bundle-piece{grid-template-columns:1fr}
    .oz-bundle-piece.is-flip .oz-bundle-piece-media{order:0}
    .oz-bundle-piece-body{max-width:none}
    .oz-bundle-hero-cn{font-size:clamp(44px,18vw,72px)}
}

/* ================================================================
   BUNDLE DETAIL PAGE — quick order (style selector + order bar)
   ================================================================ */
.oz-bundle-piece-media{position:relative}
.oz-bundle-piece-num{
    position:absolute;top:14px;left:14px;
    display:inline-flex;align-items:center;justify-content:center;
    min-width:34px;height:26px;padding:0 8px;
    font-family:var(--display);font-style:italic;font-size:13px;letter-spacing:.06em;
    color:#fff;background:rgba(20,17,13,.52);
    border:1px solid rgba(255,255,255,.28);
    backdrop-filter:blur(4px);
}

/* Style selector */
.oz-bundle-piece-field{
    display:flex;flex-direction:column;gap:9px;
    margin:6px 0 16px;width:100%;
}
.oz-bundle-piece-field-label{
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-3);
}
.oz-bundle-piece-options{
    display:flex;flex-wrap:wrap;gap:8px;
}
.oz-quick-option{position:relative;margin:0}
.oz-quick-option input{
    position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;
}
.oz-quick-option-pill{
    display:inline-flex;align-items:center;gap:7px;
    padding:9px 15px;
    border:1px solid var(--line);
    border-radius:999px;
    background:var(--bg);
    font-size:13px;letter-spacing:.02em;line-height:1;
    color:var(--ink);
    cursor:pointer;
    transition:border-color .2s,background .2s,color .2s;
}
.oz-quick-option-pill:hover{border-color:var(--ink-3)}
.oz-quick-option-check{
    display:none;width:14px;height:14px;flex:none;
    color:#fff;
}
.oz-quick-option-check svg{width:14px;height:14px}
.oz-quick-option input:checked + .oz-quick-option-pill{
    background:var(--ink);border-color:var(--ink);color:#fff;
}
.oz-quick-option input:checked + .oz-quick-option-pill .oz-quick-option-check{display:inline-flex}
.oz-quick-option input:focus-visible + .oz-quick-option-pill{
    outline:2px solid var(--seal);outline-offset:2px;
}

/* Closing manifesto */
.oz-bundle-closing{
    padding:clamp(60px,7vw,100px) 0;
    text-align:center;
    background:#f5f2ea;
    border-top:1px solid var(--line);
}
.oz-bundle-closing-cn{
    margin:0 0 10px;
    font-family:var(--cn);
    font-size:clamp(30px,5vw,44px);
    letter-spacing:.18em;color:var(--seal);
}
.oz-bundle-closing-copy{
    margin:0 auto;
    font-family:var(--display);font-style:italic;
    font-size:clamp(15px,1.8vw,19px);
    color:var(--ink-2);max-width:46ch;line-height:1.6;
}

/* Fixed order bar */
body.page-template-template-bundle-php{padding-bottom:124px}

.oz-quick-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:rgba(245,242,234,.92);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-top:1px solid var(--line);
    box-shadow:0 -12px 32px rgba(20,17,13,.07);
}
.oz-quick-bar-inner{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    padding:12px 0;
}
.oz-quick-bar-note{
    flex:1 1 240px;
    display:flex;align-items:center;gap:10px;
    font-size:12.5px;line-height:1.5;color:var(--ink-2);
}
.oz-quick-bar-icon{
    flex:none;display:inline-flex;color:var(--seal);
}
.oz-quick-bar-icon svg{width:20px;height:20px}
.oz-quick-bar-note-text b{color:var(--ink);font-weight:600}
.oz-quick-bar-meta{
    display:flex;align-items:center;gap:16px;margin-left:auto;flex-wrap:wrap;
}
.oz-quick-bar-count{font-size:13px;color:var(--ink-3);white-space:nowrap}
.oz-quick-bar-count b{color:var(--ink);font-weight:600}
.oz-quick-bar-total{
    font-family:var(--display);
    font-size:20px;font-weight:600;letter-spacing:.02em;
    color:var(--ink);white-space:nowrap;
}
.oz-quick-bar-btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:13px 24px;
    background:var(--ink);color:#fff;border:1px solid var(--ink);
    font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    cursor:pointer;white-space:nowrap;
    transition:background .25s,border-color .25s,transform .15s;
}
.oz-quick-bar-btn:hover{background:var(--seal);border-color:var(--seal)}
.oz-quick-bar-btn:active{transform:translateY(1px)}
.oz-quick-bar-btn:disabled{opacity:.6;cursor:progress}
.oz-quick-bar-status{
    flex-basis:100%;margin:0;
    font-size:12px;color:var(--seal);line-height:1.4;
}
.oz-quick-bar-status:empty{display:none}

@media (max-width:760px){
    body.page-template-template-bundle-php{padding-bottom:150px}
    .oz-quick-bar-note{flex-basis:100%}
    .oz-quick-bar-meta{margin-left:0;width:100%;justify-content:space-between}
    .oz-quick-bar-total{font-size:18px}
    .oz-quick-bar-btn{padding:12px 18px;flex:1;justify-content:center}
}