/* Shared mobile gestures and the standalone catalogue search dialog. */
html, body { touch-action: pan-x pan-y; }
.pn-search-launch { height:42px; padding:0 38px 0 43px; border:1px solid var(--pn-line); border-radius:8px; background:#edeee7; color:var(--pn-muted); text-align:left; font:inherit; font-size:13px; cursor:pointer; }
.pn-search-launch:focus-visible { outline:2px solid #849354; outline-offset:3px; }
.pn-search-dialog { box-sizing:border-box; position:fixed; inset:0; z-index:1000; display:grid; place-items:center; background:rgba(32,33,30,.4); backdrop-filter:blur(5px); color:#20211e; font-family:Onest,Arial,sans-serif; }
.pn-search-dialog[hidden] { display:none!important; }
.pn-search-panel { box-sizing:border-box; display:flex; flex-direction:column; width:min(680px,calc(100% - 40px)); height:min(720px,calc(100dvh - 80px)); border:1px solid #ddded7; border-radius:22px; background:#f5f4ef; box-shadow:0 24px 80px #20211e33; overflow:hidden; }
.pn-search-dialog *, .pn-search-dialog *::before, .pn-search-dialog *::after { box-sizing:border-box; }
.pn-search-dialog [hidden] { display:none!important; }
.pn-search-toolbar { display:flex; align-items:center; gap:16px; padding:24px; flex:none; border-bottom:1px solid #ddded7; }
.pn-search-field { position:relative; flex:1; min-width:0; }
.pn-search-field>svg { position:absolute; width:21px; height:21px; top:50%; left:15px; transform:translateY(-50%); color:#7b8071; pointer-events:none; }
.pn-search-dialog input[type=search] { display:block; width:100%; min-width:0; height:50px; padding:0 44px!important; margin:0; border:1px solid #d9dcd1!important; border-radius:12px!important; background:#fff!important; color:#20211e!important; font:inherit; font-size:16px!important; box-shadow:none!important; outline:none; -webkit-appearance:none; }
.pn-search-dialog input[type=search]:focus, .pn-search-dialog input[type=search]:focus-visible { border-color:#899766!important; outline:none!important; box-shadow:none!important; }
.pn-search-dialog input::placeholder { color:#828778; opacity:1; }
.pn-search-dialog input::-webkit-search-cancel-button { -webkit-appearance:none; }
.pn-search-cancel { flex:none; border:0; background:transparent; color:#434b32; padding:12px 0; font:inherit; font-size:15px; cursor:pointer; }
.pn-search-cancel:focus-visible, .pn-search-retry:focus-visible { outline:2px solid #849354; outline-offset:4px; border-radius:4px; }
.pn-search-content { flex:1; min-height:0; padding:24px; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.pn-search-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.pn-search-heading h2 { margin:0; font-size:18px; line-height:1.5; font-weight:650; letter-spacing:-.4px; }
.pn-search-heading h2:focus, .pn-search-heading h2:focus-visible { outline:none!important; box-shadow:none!important; }
.pn-search-count { font-size:13px; color:#7b8071; }
.pn-search-item { display:flex; align-items:center; gap:15px; min-height:92px; padding:15px 0; border-bottom:1px solid #ddded7; color:#20211e!important; text-decoration:none!important; }
.pn-search-item:last-child { border-bottom:0; }
.pn-search-item.is-disabled { opacity:.55; cursor:default; }
.pn-search-item.is-disabled .pn-search-copy>span { color:#4a5042; }
.pn-search-item:hover, .pn-search-item:focus-visible { background:#eceedf; border-radius:10px; outline:none; }
.pn-search-art { display:grid; place-items:center; position:relative; flex:none; width:62px; height:62px; border-radius:13px; overflow:hidden; background:#e4e7da; color:#60694e; font-size:26px; font-weight:600; }
.pn-search-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pn-search-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:5px; }
.pn-search-copy strong { font-size:16px; line-height:1.3; font-weight:650; overflow-wrap:anywhere; }
.pn-search-copy>span { font-size:13px; line-height:1.45; color:#74796a; overflow-wrap:anywhere; }
.pn-search-arrow { flex:none; color:#909681; font-size:26px; padding:0 3px; }
.pn-search-message { margin:32px 0 16px; color:#74796a; font-size:15px; line-height:1.6; text-align:center; }
.pn-search-retry { display:block; margin:0 auto; padding:12px 18px; border:1px solid #d4d8c8; border-radius:10px; background:#e4e9d2; color:#20211e; font:inherit; cursor:pointer; }
.pn-search-spinner { position:absolute; right:16px; top:calc(50% - 9px); width:18px; height:18px; border:2px solid #dfe4d2; border-top-color:#687a3f; border-radius:50%; animation:pn-search-spin .65s linear infinite; }
@keyframes pn-search-spin { to { transform:rotate(360deg); } }
@media(max-width:767px) {
    body input, body textarea, body select { font-size:16px!important; }
    .pn-search-dialog { display:block; background:#f5f4ef; backdrop-filter:none; }
    .pn-search-panel { position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:0; box-shadow:none; }
    .pn-search-toolbar { gap:12px; padding:calc(14px + env(safe-area-inset-top)) 16px 14px; }
    .pn-search-dialog input[type=search] { height:46px; }
    .pn-search-cancel { font-size:14px; }
    .pn-search-content { padding:20px 20px calc(24px + env(safe-area-inset-bottom)); }
    .pn-search-item { gap:13px; }
}
@media(prefers-reduced-motion:reduce) { .pn-search-spinner { animation-duration:1.5s; } }
