/* Poshaya Home Trial — swipe app. Mobile-first; tablet & desktop layouts below. */
.pht-root{
  --ivory:#FBF6EE; --paper:#FFFDF9; --sand:#F1E7D8; --line:#E6D9C6;
  --ink:#2B1B20; --ink-2:#6E5A5F; --ink-3:#9C8A8C;
  --wine:#7A1F3D; --wine-2:#5E1630; --wine-soft:#F5E6EA;
  --gold:#B8893B; --gold-soft:#F6ECD9;
  --ok:#2F6B45; --ok-soft:#E3F0E6; --skip:#8A7F80;
  --r-lg:22px; --r-md:14px; --r-sm:10px;
  --shadow:0 18px 40px -18px rgba(60,25,35,.35),0 2px 6px rgba(60,25,35,.06);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-family:var(--sans); color:var(--ink); background:var(--ivory);
  position:relative; width:100%; overflow:hidden; box-sizing:border-box;
  height:min(100dvh,900px); min-height:600px; -webkit-tap-highlight-color:transparent;
  border-radius:0;
}
.pht-root[data-fullscreen="1"]{height:100dvh;min-height:0}
.pht-root *,.pht-root *::before,.pht-root *::after{box-sizing:border-box}
:where(.pht-root) button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0;margin:0;text-transform:none;letter-spacing:inherit;line-height:inherit;box-shadow:none;min-height:0}
.pht-root input,.pht-root select,.pht-root textarea{font:inherit;color:var(--ink)}
.pht-root img{display:block;max-width:100%}
.pht-root :focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.pht-boot{position:absolute;inset:0;display:grid;place-items:center}
.pht-spinner{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--wine);animation:pht-spin .8s linear infinite}
@keyframes pht-spin{to{transform:rotate(360deg)}}

/* ---------- shell ---------- */
.pht-shell{position:absolute;inset:0;display:flex;flex-direction:column}
.pht-top{flex:none;display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--ivory);z-index:5}
.pht-brand{text-decoration:none!important;display:flex;align-items:center;gap:10px;min-width:0}
.pht-brand img{height:28px;width:auto}
.pht-word{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:.02em;color:var(--wine);line-height:1}
.pht-tag{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);border-left:1px solid var(--line);padding-left:10px;white-space:nowrap}
.pht-top .pht-sp{flex:1}
.pht-iconbtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);position:relative}
.pht-iconbtn:hover{background:var(--sand)}
.pht-iconbtn svg{width:22px;height:22px}
.pht-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--wine);color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center;line-height:1}
.pht-main{flex:1;min-height:0;position:relative;overflow:hidden}
.pht-scroll{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 16px 120px}
.pht-narrow{max-width:560px;margin:0 auto}

/* ---------- typography & controls ---------- */
.pht-step{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:500;margin:0 0 8px}
.pht-h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,6.5vw,42px);line-height:1.05;margin:0 0 10px;letter-spacing:-.005em}
.pht-h2{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.1;margin:0 0 6px}
.pht-sub{color:var(--ink-2);font-size:15.5px;line-height:1.5;margin:0 0 24px}
.pht-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 26px;border-radius:999px;background:var(--wine);color:#fff!important;font-weight:500;font-size:16px;letter-spacing:.01em;transition:background .15s,transform .1s,opacity .15s}
.pht-btn:hover{background:var(--wine-2)}
.pht-btn:active{transform:scale(.98)}
.pht-btn[disabled]{opacity:.4;pointer-events:none}
.pht-btn.block{width:100%}
.pht-btn.ghost{background:transparent;color:var(--wine)!important;border:1.5px solid var(--wine)}
.pht-btn.ghost:hover{background:var(--wine-soft)}
.pht-link{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;font-size:14.5px}
.pht-dock{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;padding-bottom:max(14px,env(safe-area-inset-bottom));background:linear-gradient(to top,var(--ivory) 70%,rgba(251,246,238,0));z-index:4}
.pht-dock .pht-narrow{display:flex;gap:10px;align-items:center}
.pht-progress{display:flex;gap:6px;margin:0 0 22px}
.pht-progress i{flex:1;height:3px;border-radius:2px;background:var(--line)}
.pht-progress i.on{background:var(--wine)}

.pht-field{display:block;margin:0 0 14px}
.pht-field span{display:block;font-size:13px;color:var(--ink-2);margin:0 0 6px;font-weight:500}
.pht-input{width:100%;height:50px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--paper);padding:0 14px;font-size:16px;transition:border-color .15s}
textarea.pht-input{height:auto;min-height:76px;padding:12px 14px;resize:vertical}
.pht-input:focus{outline:none;border-color:var(--wine)}
.pht-prefix{display:flex;align-items:stretch}
.pht-prefix b{display:grid;place-items:center;padding:0 12px;border:1.5px solid var(--line);border-right:0;border-radius:var(--r-sm) 0 0 var(--r-sm);background:var(--sand);font-weight:500;color:var(--ink-2)}
.pht-prefix .pht-input{border-radius:0 var(--r-sm) var(--r-sm) 0}
.pht-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pht-err{color:#A3263A;font-size:14px;margin:4px 0 12px;min-height:1px}

/* ---------- lead modal ---------- */
.pht-overlay{position:absolute;inset:0;z-index:30;background:rgba(43,27,32,.45);display:flex;align-items:flex-end;justify-content:center;animation:pht-fade .2s ease}
.pht-sheet{position:relative;width:100%;max-width:480px;background:var(--paper);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:28px 22px;padding-bottom:max(24px,env(safe-area-inset-bottom));animation:pht-up .28s cubic-bezier(.2,.8,.2,1);max-height:92%;overflow:auto}
.pht-sheet .pht-x{position:absolute;top:10px;right:10px}
.pht-sheet-art{height:6px;width:56px;border-radius:3px;background:var(--gold);margin:0 0 18px}
.pht-perks{display:flex;gap:16px;flex-wrap:wrap;margin:-8px 0 20px;font-size:13px;color:var(--ink-2)}
.pht-perks span::before{content:"✦ ";color:var(--gold)}
.pht-fine{font-size:12px;color:var(--ink-3);margin:12px 0 0;text-align:center}
@keyframes pht-up{from{transform:translateY(40px);opacity:0}}
@keyframes pht-fade{from{opacity:0}}

/* ---------- occasion / style / size ---------- */
.pht-occ{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pht-occ button{position:relative;text-align:left;border:1.5px solid var(--line);background:var(--paper);border-radius:var(--r-md);padding:18px 16px 16px;min-height:132px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .15s,background .15s,transform .1s}
.pht-occ button:hover{border-color:var(--gold)}
.pht-occ button.on{border-color:var(--wine);background:var(--wine-soft)}
.pht-occ .ic{font-size:28px;line-height:1}
.pht-occ b{font-family:var(--serif);font-size:23px;font-weight:600;display:block}
.pht-occ small{color:var(--ink-2);font-size:13px}
.pht-chips{display:flex;flex-wrap:wrap;gap:10px}
.pht-chip{height:42px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);font-size:14.5px;transition:all .15s}
.pht-chip:hover{border-color:var(--gold)}
.pht-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pht-sizes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pht-sizes button{height:62px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--paper);font-size:18px;font-weight:500;transition:all .15s}
.pht-sizes button:hover{border-color:var(--gold)}
.pht-sizes button.on{background:var(--wine);border-color:var(--wine);color:#fff}
.pht-guide{margin:20px 0 0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;font-size:13.5px}
.pht-guide summary{padding:12px 14px;cursor:pointer;color:var(--ink-2);list-style:none}
.pht-guide summary::after{content:" +";color:var(--gold)}
.pht-guide table{width:100%;border-collapse:collapse}
.pht-guide th,.pht-guide td{padding:8px 10px;border-top:1px solid var(--line);text-align:center}
.pht-guide th{background:var(--sand);font-weight:500}

/* ---------- swipe screen ---------- */
.pht-tabs{flex:none;display:flex;gap:4px;padding:8px 16px 0;border-bottom:1px solid var(--line);background:var(--ivory)}
.pht-tabs button{position:relative;padding:10px 12px 12px;font-size:14.5px;color:var(--ink-3);font-weight:500}
.pht-tabs button.on{color:var(--ink)}
.pht-tabs button.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--wine);border-radius:2px}
.pht-tabs .n{font-size:12px;color:var(--ink-3);margin-left:4px;font-weight:400}

.pht-swipe{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding:12px 16px 0}
.pht-meter{width:100%;max-width:440px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);margin:0 0 10px}
.pht-meter .bar{flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.pht-meter .bar i{display:block;height:100%;background:var(--wine);border-radius:2px;transition:width .3s}
.pht-meter b{color:var(--ink);font-weight:600}
.pht-ctx{font-size:12.5px;color:var(--ink-3);white-space:nowrap}
.pht-ctx button{color:var(--wine);text-decoration:underline;text-underline-offset:2px;font-size:12.5px}

.pht-deck{position:relative;flex:1;min-height:0;width:100%;max-width:440px}
.pht-card{position:absolute;inset:0;border-radius:var(--r-lg);overflow:hidden;background:var(--sand);box-shadow:var(--shadow);touch-action:none;user-select:none;-webkit-user-select:none;will-change:transform;transform-origin:50% 100%}
.pht-card.behind{transform:scale(.95) translateY(12px);filter:brightness(.97);transition:transform .25s}
.pht-card.behind2{transform:scale(.9) translateY(24px);opacity:.6}
.pht-card .img{position:absolute;inset:0;background-size:cover;background-position:center top;pointer-events:none}
.pht-card .dots{position:absolute;top:10px;left:12px;right:12px;display:flex;gap:4px;z-index:2}
.pht-card .dots i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.45)}
.pht-card .dots i.on{background:#fff}
.pht-card .info{position:absolute;left:0;right:0;bottom:0;padding:60px 18px 18px;color:#fff;background:linear-gradient(to top,rgba(25,12,16,.86) 0%,rgba(25,12,16,.55) 55%,rgba(25,12,16,0) 100%);pointer-events:none}
.pht-card .cat{font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.85;margin:0 0 6px}
.pht-card .nm{font-family:var(--serif);font-size:25px;font-weight:600;line-height:1.1;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pht-card .pr{display:flex;align-items:baseline;gap:8px;font-size:17px;font-weight:600}
.pht-card .pr s{font-weight:400;opacity:.65;font-size:14px}
.pht-card .pr em{font-style:normal;font-size:12px;font-weight:600;background:var(--gold);color:#fff;padding:2px 7px;border-radius:4px}
.pht-card .meta{font-size:12.5px;opacity:.8;margin-top:6px}
.pht-card .more{position:absolute;right:14px;bottom:18px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);display:grid;place-items:center;color:#fff;z-index:3;pointer-events:auto}
.pht-stamp{position:absolute;top:34px;z-index:4;padding:6px 14px;border:3px solid;border-radius:10px;font-weight:600;font-size:26px;letter-spacing:.08em;opacity:0;pointer-events:none;background:rgba(255,255,255,.12)}
.pht-stamp.yes{left:18px;color:#fff;border-color:#fff;background:rgba(47,107,69,.82);transform:rotate(-14deg)}
.pht-stamp.no{right:18px;color:#fff;border-color:#fff;background:rgba(43,27,32,.72);transform:rotate(14deg)}
.pht-card.fly{transition:transform .38s cubic-bezier(.3,.7,.4,1),opacity .38s}
.pht-card.snap{transition:transform .25s cubic-bezier(.3,1.4,.5,1)}

.pht-actions{flex:none;display:flex;align-items:center;justify-content:center;gap:22px;padding:14px 0;padding-bottom:max(14px,env(safe-area-inset-bottom))}
.pht-round{width:62px;height:62px;border-radius:50%;background:var(--paper);box-shadow:0 6px 16px -6px rgba(60,25,35,.35);display:grid;place-items:center;transition:transform .12s}
.pht-round:active{transform:scale(.92)}
.pht-round svg{width:28px;height:28px}
.pht-round.no{color:var(--skip)}
.pht-round.yes{width:72px;height:72px;background:var(--wine);color:#fff}
.pht-round.yes svg{width:32px;height:32px}
.pht-round.info{width:46px;height:46px;color:var(--ink-2)}
.pht-round.info svg{width:20px;height:20px}
.pht-keys{display:none;font-size:12px;color:var(--ink-3);text-align:center;margin:-6px 0 10px}

.pht-book-pill{flex:none;height:30px;padding:0 12px;border-radius:999px;background:var(--wine);color:#fff;font-size:13px;font-weight:500;white-space:nowrap}
.pht-book-pill:hover{background:var(--wine-2)}

.pht-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;border:1.5px dashed var(--line);border-radius:var(--r-lg);background:var(--paper)}
.pht-empty .ic{font-size:40px;margin:0 0 10px}
.pht-empty p{color:var(--ink-2);margin:6px 0 18px;max-width:300px;line-height:1.5}

/* limit reached */
.pht-limit{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(251,246,238,.92);backdrop-filter:blur(4px);animation:pht-fade .25s}
.pht-limit .box{max-width:400px;text-align:center}
.pht-limit .seal{width:84px;height:84px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;font-family:var(--serif);font-size:34px;font-weight:600;box-shadow:0 0 0 8px var(--wine-soft)}

/* toast */
.pht-toast{position:absolute;left:50%;top:70px;transform:translateX(-50%);z-index:40;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;box-shadow:var(--shadow);animation:pht-fade .2s;max-width:90%;text-align:center}

/* ---------- grids (bag / recent) ---------- */
.pht-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pht-tile{position:relative;background:var(--paper);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line)}
.pht-tile .ph{aspect-ratio:3/4;background:var(--sand) center top/cover}
.pht-tile .tx{padding:10px 10px 12px}
.pht-tile .nm{font-size:13.5px;line-height:1.3;margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px}
.pht-tile .pr{font-size:14px;font-weight:600}
.pht-tile .pr s{font-weight:400;color:var(--ink-3);font-size:12px;margin-left:4px}
.pht-tile .rm{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:rgba(255,253,249,.92);display:grid;place-items:center;color:var(--ink-2)}
.pht-tile .rm svg{width:16px;height:16px}
.pht-tile .add{margin-top:8px;width:100%;height:36px;border-radius:999px;border:1.5px solid var(--wine);color:var(--wine);font-size:13.5px;font-weight:500}
.pht-tile .add:hover{background:var(--wine-soft)}
.pht-tile .add[disabled]{opacity:.4;pointer-events:none;border-color:var(--ink-3);color:var(--ink-3)}
.pht-tile.na .ph{filter:grayscale(1) opacity(.6)}
.pht-sumbar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:var(--r-md);background:var(--gold-soft);margin:0 0 18px;font-size:14px;color:var(--ink-2)}
.pht-sumbar b{color:var(--ink);font-size:16px}

/* ---------- schedule ---------- */
.pht-dates{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;margin:0 -16px 20px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.pht-dates::-webkit-scrollbar{display:none}
.pht-dates button{flex:none;width:72px;padding:10px 0;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--paper);text-align:center;transition:all .15s}
.pht-dates button small{display:block;font-size:12px;color:var(--ink-3)}
.pht-dates button b{display:block;font-size:24px;font-family:var(--serif);font-weight:600;line-height:1.1}
.pht-dates button.on{background:var(--wine);border-color:var(--wine);color:#fff}
.pht-dates button.on small{color:rgba(255,255,255,.8)}
.pht-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pht-slots button{height:54px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--paper);font-size:15px;font-weight:500;transition:all .15s}
.pht-slots button.on{border-color:var(--wine);background:var(--wine-soft);color:var(--wine)}
.pht-slots button[disabled]{opacity:.4;text-decoration:line-through;pointer-events:none}
.pht-label{font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:.04em;margin:0 0 10px}

/* ---------- thank you ---------- */
.pht-ty{text-align:center;padding-top:20px}
.pht-check{width:96px;height:96px;margin:0 auto 22px;border-radius:50%;background:var(--ok-soft);display:grid;place-items:center}
.pht-check svg{width:48px;height:48px;color:var(--ok)}
.pht-check path{stroke-dasharray:40;stroke-dashoffset:40;animation:pht-draw .6s .2s ease forwards}
@keyframes pht-draw{to{stroke-dashoffset:0}}
.pht-receipt{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:6px 18px;margin:24px 0}
.pht-receipt div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.pht-receipt div:last-child{border:0}
.pht-receipt span{color:var(--ink-2)}
.pht-receipt b{font-weight:500;text-align:right}
.pht-steps{text-align:left;margin:0 0 24px;padding:0;list-style:none;counter-reset:s}
.pht-steps li{counter-increment:s;position:relative;padding:0 0 14px 40px;font-size:14.5px;color:var(--ink-2);line-height:1.45}
.pht-steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:26px;height:26px;border-radius:50%;background:var(--gold-soft);color:var(--gold);font-weight:600;font-size:13px;display:grid;place-items:center}
.pht-steps b{color:var(--ink);font-weight:500}

/* product detail sheet */
.pht-detail .gal{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -22px 16px;padding:0 22px}
.pht-detail .gal div{flex:none;width:70%;aspect-ratio:3/4;border-radius:var(--r-md);background:var(--sand) center top/cover;scroll-snap-align:center}

/* ---------- tablet ---------- */
@media (min-width:640px){
  .pht-overlay{align-items:center}
  .pht-sheet{border-radius:var(--r-lg);padding:34px 32px}
  .pht-occ{grid-template-columns:repeat(4,1fr)}
  .pht-occ button{min-height:150px}
  .pht-grid{grid-template-columns:repeat(3,1fr)}
  .pht-scroll{padding:36px 24px 130px}
  .pht-card .nm{font-size:28px}
  .pht-dates{margin:0 0 20px;padding-left:2px;padding-right:2px}
  .pht-slots{grid-template-columns:repeat(4,1fr)}
}

/* ---------- desktop: deck + side bag ---------- */
@media (min-width:1024px){
  .pht-root{height:min(100dvh,860px)}
  .pht-top{padding:14px 28px}
  .pht-tabs{padding:8px 28px 0}
  .pht-layout{position:absolute;inset:0;display:grid;grid-template-columns:1fr 380px}
  .pht-layout > .pht-pane{position:relative;min-height:0}
  .pht-side{border-left:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;min-height:0}
  .pht-side h3{font-family:var(--serif);font-size:24px;font-weight:600;margin:0;padding:20px 22px 4px}
  .pht-side .sub{padding:0 22px 14px;color:var(--ink-2);font-size:13.5px;border-bottom:1px solid var(--line)}
  .pht-side .list{flex:1;overflow:auto;padding:12px 16px}
  .pht-side .foot{padding:16px 22px;border-top:1px solid var(--line)}
  .pht-mini{display:flex;gap:12px;align-items:center;padding:8px 6px;border-radius:var(--r-sm);animation:pht-up .25s}
  .pht-mini:hover{background:var(--ivory)}
  .pht-mini .ph{flex:none;width:52px;height:68px;border-radius:8px;background:var(--sand) center top/cover}
  .pht-mini .tx{flex:1;min-width:0;font-size:13.5px;line-height:1.3}
  .pht-mini .tx b{display:block;font-weight:600;margin-top:3px}
  .pht-mini .rm{color:var(--ink-3);width:28px;height:28px;border-radius:50%;display:grid;place-items:center}
  .pht-mini .rm:hover{background:var(--sand);color:var(--ink)}
  .pht-mini .rm svg{width:15px;height:15px}
  .pht-side .none{color:var(--ink-3);font-size:14px;text-align:center;padding:40px 20px;line-height:1.5}
  .pht-tabs .only-m{display:none}
  .pht-book-pill{display:none}
  .pht-keys{display:block}
  .pht-grid{grid-template-columns:repeat(4,1fr)}
  .pht-deck{max-width:420px}
  .pht-narrow{max-width:720px}
  .pht-occ button{min-height:170px;padding:20px}
}
@media (max-width:1023px){ .pht-side{display:none} .pht-layout,.pht-layout>.pht-pane{position:absolute;inset:0} }
@media (max-height:640px){ .pht-actions{padding:8px 0} .pht-round{width:52px;height:52px} .pht-round.yes{width:60px;height:60px} }
@media (prefers-reduced-motion:reduce){ .pht-root *{animation:none!important;transition:none!important} }
