@import url("invitation.css");
/* Showroom, detail modal, live preview and print panel. Numbers from the FigCraft "Katalog tema" frames. */
.showroom{padding-block:8px}
.showroom .tabs{margin-bottom:24px}
.sr-bar{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}
.sr-search{display:flex;align-items:center;gap:12px;max-width:420px;height:48px;padding:0 20px;border-radius:var(--r-pill);background:#fff;border:1.5px solid var(--line-2);color:var(--text-3);font-size:18px;transition:border-color .2s,box-shadow .2s}
.sr-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(26,111,232,.12)}
.sr-search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:15px;color:var(--ink)}
.sr-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.sr-chips .chip{min-height:40px;padding:0 18px;font-size:14px}
.sr-chips .tier .chip[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.sep{width:1px;height:24px;background:var(--line-2)}
.sr-colors{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--text-5)}
.swatch{width:28px;height:28px;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 0 0 1px rgba(14,26,43,.14);transition:transform .25s var(--spring),box-shadow .2s;position:relative}
.swatch::after{content:"";position:absolute;inset:-8px}
.swatch:hover{transform:scale(1.12)}
.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--blue)}
.shelf{margin-bottom:44px}
.shelf-head,.grid-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.shelf-head h3,.grid-head h3{font-size:clamp(22px,2.2vw,28px);font-weight:600}
.shelf-head .link-arrow{font-size:16px}
.shelf .slider-track{gap:24px;padding-bottom:6px;scroll-snap-type:x proximity;padding-right:40px}
.shelf .slider-item{width:252px;scroll-snap-align:start}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:28px 24px}
.sort{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);border:1.5px solid var(--line-2);background:#fff;font-size:14px;font-weight:500}
.sort select{border:0;background:none;font-weight:600;font-size:14px;outline:0;cursor:pointer}
.tile{position:relative}
.tile-open{display:block;width:100%;text-align:left}
.tile-art{display:block;position:relative;aspect-ratio:252/190;border-radius:16px;overflow:hidden;background:#E6ECF5;transition:transform .5s var(--spring),box-shadow .4s var(--ease)}
.tile-art img{width:100%;height:100%;object-fit:cover}
.tile-art::after{content:"";position:absolute;inset:0;background:rgba(14,26,43,.0);transition:background .3s}
@media (hover:hover){.tile:hover .tile-art{transform:translateY(-6px);box-shadow:var(--shadow-float)}.tile:hover .tile-art::after{background:rgba(14,26,43,.28)}}
.tile[data-sel=true] .tile-art{box-shadow:0 0 0 3px var(--blue)}
.tile-check{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-size:14px;font-weight:700}
.tile-actions{position:absolute;left:0;right:0;top:0;aspect-ratio:252/190;display:flex;align-items:center;justify-content:center;gap:12px;pointer-events:none}
.tile-actions button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;font-size:17px;box-shadow:var(--shadow-soft);opacity:0;transform:scale(.6);transition:opacity .3s var(--ease),transform .4s var(--spring);pointer-events:none}
@media (hover:hover){.tile:hover .tile-actions button,.tile:focus-within .tile-actions button{opacity:1;transform:none;pointer-events:auto}.tile-actions button:nth-child(2){transition-delay:.04s}.tile-actions button:nth-child(3){transition-delay:.08s}.tile-actions button:hover{transform:scale(1.1)}}
.tile-actions button:focus-visible{opacity:1;transform:none;pointer-events:auto}
.tile-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:12px}
.tile-meta strong{font-family:var(--font-accent);font-style:normal;font-weight:400;font-size:20px;font-variation-settings:"opsz" 72}
.tile-meta span{font-size:13px;font-weight:500;color:#8A94A3}
.tile-meta .tile-b{padding:1px 8px;border-radius:99px;background:var(--pale);color:var(--blue-deep);font-size:11px;font-weight:700;letter-spacing:.04em}
.empty{max-width:560px;padding-block:24px}.empty h3{font-size:22px}.empty p{margin:12px 0 22px;color:var(--text-3);font-size:16px}

/* ---- Detail modal ---- */
.detail-layer .modal{width:min(1120px,100%)}
.detail{display:grid;grid-template-columns:minmax(0,516px) minmax(0,1fr);gap:28px;padding:28px}
.d-art{position:relative}
.d-main{position:relative;border-radius:24px;background:#E3E9F3;overflow:hidden;aspect-ratio:516/390;display:grid;place-items:center}
.d-main img{width:100%;height:100%;object-fit:cover}
.d-art .slider-arrow{top:calc(390px / 2 - 22px);width:44px;height:44px;margin:0;font-size:22px}
.d-art .slider-arrow.prev{left:12px}.d-art .slider-arrow.next{right:12px}
.d-try{display:flex;gap:18px;align-items:center;margin-top:22px}
.d-try .mini{flex:none;width:108px;aspect-ratio:108/216;border-radius:20px;border:5px solid #101418;background:#E3E9F3;overflow:hidden}
.d-try .mini img{width:100%;height:100%;object-fit:cover}
.d-try h4{font-size:19px;font-weight:600}.d-try p{margin:8px 0 14px;font-size:15px;color:var(--text-3);line-height:1.45}
.d-info{padding:42px 8px 8px 8px}
.d-info h2{font-family:var(--font-accent);font-style:normal;font-weight:400;font-size:clamp(44px,5vw,64px);line-height:1;letter-spacing:-.02em}
.d-tier{display:flex;align-items:center;gap:10px;margin-top:24px;font-weight:600}.d-tier i{width:10px;height:10px;border-radius:50%;background:#9AA5B1}.d-tier i.premium{background:#D5A94B}
.d-desc{margin-top:22px;font-size:19px;line-height:1.45;color:var(--text-2)}
.d-info dl{display:grid;grid-template-columns:70px 1fr;gap:8px 20px;margin:22px 0;font-size:15px}.d-info dt{color:var(--text-5);font-weight:500}.d-info dd{margin:0}
.d-info hr{border:0;border-top:1px solid var(--line);margin:0 0 22px}
.d-price{font-size:24px;font-weight:700}.d-note{margin:14px 0 24px;font-size:14px;color:var(--text-3)}
.d-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.d-actions .btn-ghost{border-color:var(--blue);color:var(--blue)}
.heart{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line-2);font-size:20px;transition:transform .3s var(--spring)}.heart:hover{transform:scale(1.1)}
@media (max-width:700px){.detail{grid-template-columns:1fr;padding:22px 20px 28px;gap:18px}.d-info{padding:0}.d-info h2{font-size:44px}.d-try{display:none}.d-art .slider-arrow{top:calc(52vw - 22px)}.d-actions .btn{flex:1}}

/* ---- Live preview ---- */
.layer-full{position:absolute;inset:0;background:#fff;transform:translateY(24px);opacity:0;transition:transform .55s var(--ease),opacity .35s var(--ease);overflow:hidden}
.is-open .layer-full{transform:none;opacity:1}
.pv-layer .modal-backdrop{background:rgba(14,26,43,.3)}
.pv{height:100%;display:flex;flex-direction:column;transition:opacity .16s}
.pv.swap{opacity:.2}
.pv-bar{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:68px;padding:0 28px;background:#fff;box-shadow:0 6px 24px rgba(14,26,43,.08);position:relative;z-index:3}
.pv-back{display:flex;align-items:center;gap:6px;min-height:44px;color:var(--blue);font-weight:600;font-size:15px;justify-self:start}
.pv-mid{display:flex;align-items:center;gap:14px}.pv-mid strong{font-family:var(--font-accent);font-weight:400;font-size:26px;min-width:90px;text-align:center}.pv-mid .tier{font-size:13px;color:var(--text-3);font-weight:500}
.pv-nav{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);font-size:20px;transition:transform .25s var(--spring)}.pv-nav:hover{transform:scale(1.1)}
.pv-right{display:flex;align-items:center;gap:16px;justify-self:end}.pv-price{font-weight:600;font-size:14px}
.pv-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px)}
.pv-art{background:var(--pv-bg,#F5EFE6);overflow:auto;display:grid;place-items:center;padding:36px;transition:background .5s var(--ease)}
.pv-art-in{width:min(560px,100%,calc((100dvh - 300px) * .876));min-width:min(100%,300px);display:flex;flex-direction:column;gap:28px}
.pv-cover{width:100%;filter:drop-shadow(0 20px 40px rgba(14,26,43,.14));border-radius:14px;overflow:hidden}
.pv-cover.pv-card{aspect-ratio:291/408;max-width:340px;margin-inline:auto;padding:12%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--bg);color:var(--ink);font-family:var(--fb);border:6px double var(--accent);border-radius:6px}
.pv-card small{letter-spacing:.3em;font-size:11px;color:var(--accent);font-weight:700}.pv-card b{margin-top:12px;font:400 clamp(28px,4vw,42px)/1.1 var(--fn);font-style:italic}.pv-card i{display:block;width:48px;height:1px;background:var(--accent);margin:16px 0}.pv-card span{font-size:15px}.pv-card em{margin-top:6px;font-size:12px;font-style:normal;opacity:.8}
.card-kawung{background-image:radial-gradient(circle at 50% 50%,transparent 58%,rgba(198,155,90,.22) 60%,transparent 62%);background-size:44px 44px}
.pv-try{background:rgba(255,255,255,.7);border-radius:18px;padding:16px 18px;backdrop-filter:none}
.pv-try .pv-note{font-size:12px;color:var(--text-3);margin-bottom:6px}
.pv-try fieldset{border:0;margin:0;padding:0;display:grid;gap:10px}.pv-try legend{font-weight:600;font-size:15px;margin-bottom:10px;padding:0}
.pv-try .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pv-try label{display:grid;gap:4px;font-size:12px;color:var(--text-3);min-width:0}
.pv-try input{width:100%;min-width:0;height:44px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line-2);background:#fff;font-size:15px;color:var(--ink)}
.pv-try input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(26,111,232,.12)}
.pv-side{background:#EEF1F6;overflow:auto;border-left:1px solid var(--line)}
.pv-mobile-bar{display:none}
/* Print panel */
.print-panel{background:#EEF1F6;padding:26px 30px 36px;font-size:15px}
.pp-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.pp-head h2{font-size:24px;font-weight:700}.pp-head span{font-size:12px;color:var(--warn);font-weight:600}
.opt{margin-top:20px}.opt-t{font-size:12px;font-weight:600;color:var(--text-5);margin-bottom:8px}.opt-row{display:flex;flex-wrap:wrap;gap:8px}
.opt-chip{min-height:44px;padding:0 16px;border-radius:99px;background:#fff;border:1.5px solid var(--line-2);font-size:14px;font-weight:500;transition:border-color .2s,color .2s,background .2s}
.opt-chip[aria-pressed=true]{border-color:var(--blue);color:var(--blue);background:#F2F7FF;font-weight:600}
.pp-sum{margin-top:22px;padding-top:14px;border-top:1px solid var(--line-2)}.pp-sum p{display:flex;justify-content:space-between;gap:12px;padding:4px 0;color:var(--text-3)}.pp-sum .strong{color:var(--ink);font-weight:600}
.pp-qty{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;color:var(--text-3)}
.stepper{display:flex;align-items:center;border-radius:99px;background:#fff;border:1.5px solid var(--line-2);padding:0 4px}.stepper button{width:44px;height:44px;color:var(--blue);font-size:20px}.stepper output{min-width:92px;text-align:center;font-weight:600;color:var(--ink)}
.pp-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:20px;font-weight:700}.pp-total b{color:var(--blue);font-size:22px}
@media (max-width:900px){
  .pv-bar{grid-template-columns:auto 1fr;height:60px;padding:0 12px}.pv-right{display:none}.pv-mid{justify-self:end}.pv-mid strong{font-size:22px;min-width:0}.pv-back{font-size:0}.pv-back span{font-size:28px}
  .pv-body{grid-template-columns:1fr;overflow:auto;display:block}
  .pv-art{overflow:visible;padding:20px 20px 24px;display:block}.pv-side{overflow:visible;border:0}
  .pv-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -6px 24px rgba(14,26,43,.1);font-weight:600;font-size:13px}
  .pv-mobile-bar .btn{min-width:150px}
}

.sr-chips .chip{min-height:44px}
.sr-search input{min-height:44px}
