/* Shared, progressively enhanced catalogue navigation. */
.header.site-navigation { position:relative; z-index:12; }
.header.site-navigation .header-nav { display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-end; gap:clamp(16px,1.7vw,30px); min-width:0; max-width:none; margin-top:0; }
.header-nav .header-search { position:relative; width:clamp(180px,19vw,280px); min-width:0; flex-shrink:1; font-weight:400; }
.header-search-field { display:flex; align-items:center; border:1px solid #d8cbe8; border-radius:30px; background:#fff; min-height:44px; transition:border-color .15s,box-shadow .15s; }
.header-search-field:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px #aa81db20; }
.header-search-field input { width:100%; min-width:0; border:0; outline:0; padding:10px 0 10px 16px; border-radius:30px; background:transparent; color:var(--ink); font:400 13px/1.5 var(--sans); }
.header-search-field input::placeholder { color:#766a86; opacity:1; }
.header-search-field button { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border:0; border-radius:50%; padding:9px; background:transparent; color:var(--accent); }
.header-search-field button:hover { background:#f2edf8; }
.header-search-field button:focus-visible { outline-offset:0; }
.header-nav .header-menu { position:relative; flex-shrink:0; }
.header-menu summary { display:flex; align-items:center; gap:7px; min-height:44px; padding:9px 0; list-style:none; cursor:pointer; color:var(--blue); white-space:nowrap; }
.header-menu summary::-webkit-details-marker { display:none; }
.header-menu summary::marker { content:""; }
.header-menu summary:hover,.header-menu[open] summary { color:var(--accent); }
.header-menu summary:focus-visible { outline:3px solid #9d73a7; outline-offset:5px; border-radius:3px; }
.header-menu-chevron { display:inline-block; font:400 15px/1 var(--sans); transition:transform .15s; }
.header-menu[open] .header-menu-chevron { transform:rotate(180deg); }
.header-menu-panel,.header-search-popover { position:absolute; z-index:30; top:calc(100% + 9px); right:0; width:390px; max-width:calc(100vw - 40px); padding:21px; border:1px solid #e3d9ef; border-radius:16px; background:#fff; box-shadow:0 12px 40px #28134820; color:var(--ink); }
.header-menu-panel::before { content:""; position:absolute; height:12px; left:0; right:0; bottom:100%; }
.header-menu-question { font-size:15px; font-weight:600; line-height:1.5; margin:0 0 13px; color:var(--accent); }
.header-menu-panel ul,.header-search-results { list-style:none; margin:0; padding:0; }
.header.site-navigation .header-menu-panel a { display:block; white-space:normal; padding:11px 12px; border-radius:9px; font-size:12px; font-weight:400; line-height:1.55; color:var(--blue); }
.header.site-navigation .header-menu-panel a:hover,.header.site-navigation .header-menu-panel a:focus-visible { background:#f4eef9; color:var(--accent); }
.header-menu-panel li+li { border-top:1px solid #f0eaf5; }
.header-search-popover { left:0; right:auto; width:390px; padding:9px; }
.header-search-status { padding:9px 10px; font-size:11px; line-height:1.7; font-weight:400; color:#746480; }
.header-search-results { max-height:min(430px,55vh); overflow-y:auto; overscroll-behavior:contain; }
.header.site-navigation .header-search-results a { display:flex; flex-direction:column; gap:4px; padding:11px 10px; white-space:normal; border-radius:8px; font-size:12px; font-weight:500; line-height:1.45; color:var(--blue); }
.header-search-results a[aria-selected="true"],.header.site-navigation .header-search-results a:hover { background:#f1eaf8; color:var(--accent); }
.header-search-results .search-result-context { font-size:10px; line-height:1.5; color:#796b83; font-weight:400; }
.header-search-results .search-result-excerpt { font-size:11px; line-height:1.5; color:#62586d; font-weight:400; }
.header.site-navigation .header-search-results a.search-result--photo { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:11px; }
.header-search-results .search-result-image { grid-column:1; grid-row:1 / span 3; width:44px; height:44px; object-fit:cover; border-radius:6px; background:#f4f0f6; }
.header-search-results .search-result--photo > span { grid-column:2; min-width:0; }
.header-search-results .search-result-title,.header-search-results .search-result-excerpt { overflow-wrap:anywhere; }
.header.site-navigation .nav-contact { flex-shrink:0; min-height:42px; display:flex; align-items:center; justify-content:center; }
@media(max-width:1000px) {
  .header.site-navigation { flex-wrap:wrap; gap:18px; }
  .header.site-navigation .header-nav { flex:1 0 100%; justify-content:flex-start; gap:24px; width:100%; }
  .header-nav .header-search { flex:1 1 220px; width:auto; max-width:430px; margin-right:auto; }
}
@media(max-width:760px) {
  .header.site-navigation .header-nav { position:relative; display:grid; grid-template-columns:1fr 1fr auto; gap:10px 16px; font-size:12px; }
  .header-nav .header-search { grid-column:1 / -1; width:100%; max-width:none; margin:0; }
  .header-nav .header-menu { position:static; }
  .header-menu summary { min-height:42px; }
  .header-menu-panel { top:calc(100% + 8px); left:0; right:0; width:100%; max-width:none; max-height:60vh; overflow-y:auto; }
  .header-search-popover { width:100%; max-width:none; }
  .header.site-navigation .nav-contact { min-height:40px; padding:8px 13px; }
}
@media(max-width:520px) {
  .header.site-navigation .header-nav { margin-top:18px; gap:8px 12px; font-size:11px; }
  .header-search-field input { font-size:16px; padding-block:10px; }
  .header-menu-question { font-size:14px; }
  .header.site-navigation .header-menu-panel a { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .header-search-field,.header-menu-chevron { transition:none; }
}
