/* Isolated modal: the existing masonry feed is never rearranged. */
.tp-pick { box-sizing:border-box; width:min(1000px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:28px; border:1px solid #e3d9ce; border-radius:22px; background:#fffaf3; color:#17131a; box-shadow:0 24px 100px #0005; overflow:auto; font:400 14px/1.5 'DM Sans',Arial,sans-serif; }
.tp-pick::backdrop { background:rgb(18 16 23 / 55%); }
.tp-pick[open] { animation:tp-pick-in .2s ease-out; }
.tp-pick *, .tp-pick *::before, .tp-pick *::after { box-sizing:border-box; }
.tp-pick [hidden] { display:none!important; }
.tp-pick-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:22px; }
.tp-pick-eyebrow { margin:0 0 8px; color:#9c3049; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.tp-pick h2 { margin:0; font:600 32px/1.15 'Playfair Display',Georgia,serif; letter-spacing:-.025em; }
.tp-pick-intro { margin:10px 0 0; color:#625963; font-size:13px; }
.tp-pick-close { flex:0 0 44px; width:44px; height:44px; border:0; border-radius:50%; background:#efe5da; color:#17131a; font:28px/1 Arial,sans-serif; cursor:pointer; }
.tp-pick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.tp-pick-item { display:flex; flex-direction:column; min-width:0; border:1px solid #e3d9ce; border-radius:14px; overflow:hidden; background:#fffdf9; }
.tp-pick-image { display:block; background:#eee8de; }
.tp-pick-image img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.tp-pick-copy { display:flex; flex-direction:column; flex:1; padding:16px; }
.tp-pick h3 { margin:0 0 8px; font:600 23px/1.2 'Playfair Display',Georgia,serif; }
.tp-pick-description { margin:0 0 18px; font-size:13px; line-height:1.5; }
.tp-pick-cta { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:auto; padding:10px 12px; border-radius:999px; background:#ff3150; color:#fff!important; text-align:center; text-decoration:none; font-size:12px; font-weight:800; }
.tp-pick-cta:hover { background:#dc2240; }
.tp-pick-note { margin:18px 0 0; color:#70656d; text-align:center; font-size:11px; }
.tp-pick a:focus-visible, .tp-pick button:focus-visible { outline:3px solid #a02246; outline-offset:3px; }
html.tp-pick-open .free-bar { visibility:hidden; pointer-events:none; }
.free-bar button.free-bar-link { border:0; font-family:inherit; cursor:pointer; }
@media(max-width:700px) {
  .tp-pick { width:calc(100% - 24px); max-height:calc(100dvh - 24px); padding:18px; border-radius:18px; }
  .tp-pick-header { gap:8px; margin-bottom:16px; }
  .tp-pick h2 { font-size:25px; }
  .tp-pick-grid { grid-template-columns:1fr; gap:12px; }
  .tp-pick-item { display:grid; grid-template-columns:38% minmax(0,1fr); }
  .tp-pick-image { align-self:center; }
  .tp-pick-copy { padding:12px; }
  .tp-pick h3 { font-size:20px; }
  .tp-pick-description { margin-bottom:10px; font-size:12px; }
}
@keyframes tp-pick-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .tp-pick[open] { animation:none; } }
