/* Shared public navigation. Initial and interactive geometry are identical. */
.cp-public-header {
  --cp-public-ink:var(--cp-color-ink,#251420); --cp-public-accent:var(--cp-color-accent,#bf0069); --cp-public-line:var(--cp-color-line,#e4dee1);
  position:sticky; top:var(--cp-public-top,0px); z-index:150; width:100%;
  background:var(--cp-color-paper,#fffdf9); color:var(--cp-public-ink); border-bottom:1px solid var(--cp-public-line);
  font-family:var(--cp-font-body,Inter,system-ui,-apple-system,"Segoe UI",sans-serif); font-size:16px; line-height:1.4;
}
.admin-bar .cp-public-header { --cp-public-top:32px; }
.cp-public-header *, .cp-public-header *::before, .cp-public-header *::after { box-sizing:border-box; }
.cp-public-header [hidden] { display:none !important; }
.cp-public-header a { color:inherit; text-decoration:none; }
.cp-public-header button { font:inherit; cursor:pointer; text-transform:none; letter-spacing:normal; box-shadow:none; }
.cp-public-header :is(a,button,input,summary):focus-visible { outline:3px solid var(--cp-public-accent); outline-offset:3px; }
.cp-public-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; width:min(var(--cp-content-width,1320px),100%); min-height:68px; padding:4px var(--cp-page-gutter,16px); margin:auto; }
.cp-public-brand { display:flex; align-items:center; flex:0 0 106px; width:106px; height:58px; }
.cp-public-logo { display:block; width:106px; height:58px; object-fit:contain; }
.cp-public-actions { display:flex; align-items:center; gap:6px; margin-left:auto; }
.cp-public-header .cp-public-icon-button, .cp-public-header .cp-public-menu-toggle {
  display:inline-flex; align-items:center; justify-content:center; flex:none; gap:7px;
  min-width:44px; min-height:44px; height:44px; margin:0; padding:10px; border:1px solid transparent;
  border-radius:var(--cp-control-radius,12px); background:transparent; color:var(--cp-public-ink); font-size:15px; line-height:1; font-weight:700;
}
.cp-public-header .cp-public-menu-toggle { border-color:var(--cp-public-line); padding-inline:11px; }
.cp-public-header .cp-public-icon-button:hover, .cp-public-header .cp-public-menu-toggle:hover { background:var(--cp-color-accent-soft,#fff0f7); color:var(--cp-public-accent); }
.cp-public-header .cp-public-icon-button svg, .cp-public-menu-toggle svg { display:block; width:22px; height:22px; }
.cp-public-header .cp-public-account { display:none; }
/* Without JavaScript, navigation and the search form remain usable. */
html:not(.cp-enhanced) .cp-public-header:not([data-ready]) .cp-public-menu-toggle { display:none; }
html:not(.cp-enhanced) .cp-public-header:not([data-ready]) .cp-public-bar { flex-wrap:wrap; }
html:not(.cp-enhanced) .cp-public-header:not([data-ready]) .cp-public-menu { order:4; flex-basis:100%; }
.cp-public-panel { padding:16px; background:var(--cp-color-paper,#fffdf9); }
.cp-enhanced .cp-public-header .cp-public-panel,
.cp-public-header[data-ready] .cp-public-panel { display:none; }
.cp-public-header[data-open="menu"] .cp-public-menu { display:block; }
.cp-public-header[data-open="menu"] { position:fixed; left:0; right:0; }
.cp-public-header[data-open] .cp-public-panel {
  position:fixed; z-index:1; top:var(--cp-public-edge,68px); left:0; right:0;
  height:calc(var(--cp-public-viewport,100dvh) - var(--cp-public-edge,68px));
  overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  padding:12px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  border-top:1px solid var(--cp-public-line);
}
.cp-public-menu-list { display:grid; gap:0; list-style:none; padding:0; margin:0; }
.cp-public-menu-list li { margin:0; padding:0; list-style:none; min-width:0; }
.cp-public-menu-list a, .cp-public-menu-list summary, .cp-public-utilities a {
  display:flex; align-items:center; min-height:48px; padding:10px 6px; border-bottom:1px solid var(--cp-public-line);
  font-size:16px; line-height:1.35; font-weight:650; overflow-wrap:anywhere;
}
.cp-public-menu-list a:hover, .cp-public-utilities a:hover { color:var(--cp-public-accent); }
.cp-public-menu-parent>details[open]>.cp-public-submenu { margin:0 0 10px 8px; padding:8px 10px 12px 14px; border-left:4px solid var(--cp-public-accent); border-radius:0 0 12px 12px; background:var(--cp-color-accent-soft,#fff0f7); }
.cp-public-submenu .cp-public-menu-list { padding-left:0; }
.cp-public-submenu .cp-public-menu-list a { min-height:46px; padding:10px 12px; border-bottom:1px solid #eadce4; font-size:15px; font-weight:550; }
.cp-public-submenu .cp-public-menu-list a:hover { border-radius:8px; background:#fff; }
.cp-public-submenu>a { display:flex; align-items:center; min-height:44px; margin:0 0 4px; padding:9px 12px; border:1px solid #efcddd; border-radius:8px; background:#fff; font-size:14px; }
.cp-public-menu-list summary { cursor:pointer; justify-content:space-between; }
.cp-public-menu-list summary::after { content:""; display:block; flex:none; width:9px; height:9px; margin:0 5px 4px 12px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s ease,margin .2s ease; }
.cp-public-menu-list details[open]>summary::after { margin-top:5px; margin-bottom:0; transform:rotate(225deg); }
.cp-public-menu-heading span { display:block; padding:16px 6px 5px; color:var(--cp-color-muted,#65545f); font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.cp-public-submenu>a { font-weight:750; color:var(--cp-public-accent); }
.cp-public-utilities { margin-top:18px; }
.cp-public-utilities a { font-size:15px; color:var(--cp-color-muted,#65545f); }
.cp-public-search { position:relative; flex:1 1 275px; min-width:190px; max-width:310px; padding:0; margin:0; background:transparent; }
.cp-public-search form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px; width:100%; margin:0; }
.cp-public-header .cp-public-search input[type="search"] { display:block; width:100%; min-width:0; height:44px; padding:9px 11px; margin:0; border:1px solid #9d949e; border-radius:10px; background:#fff; color:var(--cp-public-ink); font:inherit; font-size:14px; box-shadow:none; }
.cp-public-header .cp-public-search button[type="submit"] { min-height:44px; padding:9px 12px; border:0; border-radius:10px; background:var(--cp-public-accent); color:#fff; font-size:13px; font-weight:700; }
.cp-public-search-popover { position:absolute; z-index:3; top:calc(100% + 8px); left:0; width:min(560px,100%); max-height:min(68vh,620px); overflow-y:auto; padding:12px 16px 16px; border:1px solid var(--cp-public-line); border-radius:14px; background:var(--cp-color-paper,#fffdf9); box-shadow:0 16px 38px #25142026; }
.cp-public-search-status { margin:0 0 8px; color:var(--cp-color-muted,#65545f); font-size:14px; }
.cp-public-search-result { display:flex; align-items:center; gap:12px; min-height:68px; padding:10px 4px; border-bottom:1px solid var(--cp-public-line); }
.cp-public-search-result img { flex:0 0 52px; width:52px; height:60px; object-fit:contain; background:#fff; border-radius:6px; }
.cp-public-search-result span { display:grid; gap:3px; min-width:0; }
.cp-public-search-result strong { font-size:15px; line-height:1.35; font-weight:650; }
.cp-public-search-result small { color:var(--cp-color-muted,#65545f); font-size:13px; }
.cp-public-shop-link { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; font-weight:700; }
.cp-public-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:782px) { .admin-bar .cp-public-header { --cp-public-top:46px; } }
@media(max-width:767px) {
  .cp-public-bar { flex-wrap:wrap; row-gap:3px; padding-bottom:10px; }
  .cp-public-search { order:3; flex:1 0 100%; max-width:none; min-width:0; }
  .cp-public-search-popover { left:0; right:0; width:100%; }
  .cp-public-header .cp-public-search input[type="search"] { font-size:16px!important; }
}
@media(min-width:768px) and (max-width:1279px) {
  .cp-public-search { flex:1 1 0; min-width:0; max-width:none; }
}
@media(min-width:1280px) {
  .cp-public-bar { gap:14px; min-height:76px; }
  .cp-public-brand, .cp-public-logo { width:118px; height:64px; }
  .cp-public-brand { flex-basis:118px; }
  .cp-public-header .cp-public-menu-toggle { display:none; }
  .cp-public-header .cp-public-account { display:inline-flex; }
  .cp-enhanced .cp-public-header .cp-public-menu,
  .cp-public-header[data-ready] .cp-public-menu, .cp-public-menu { display:block; padding:0; margin:0; }
  .cp-public-menu-list { display:flex; align-items:center; gap:7px; }
  .cp-public-menu-list a, .cp-public-menu-list summary { min-height:44px; padding:10px 9px; border:0; font-size:15px; white-space:nowrap; overflow-wrap:normal; }
  .cp-public-menu-list details { position:relative; }
  .cp-public-menu-list details[open]>.cp-public-submenu { position:absolute; z-index:4; display:grid; min-width:270px; max-height:calc(100dvh - var(--cp-public-edge,120px) - 12px); overflow-y:auto; margin:0; padding:10px 12px 12px; border:1px solid var(--cp-public-line); border-left:4px solid var(--cp-public-accent); border-radius:10px; background:var(--cp-color-accent-soft,#fff0f7); box-shadow:0 16px 38px #25142026; }
  .cp-public-menu-list details[open]>.cp-public-submenu .cp-public-menu-list { display:grid; gap:0; padding:0; }
  .cp-public-menu-list details[open]>.cp-public-submenu a { white-space:normal; min-height:44px; }
  .cp-public-menu-heading span { padding:12px 9px 4px; }
  .cp-public-utilities { display:none; }
  .cp-public-header .cp-public-search input[type="search"] { font-size:15px; }
  .cp-public-header .cp-public-search button[type="submit"] { font-size:14px; }
}
@media(min-width:1280px) and (max-width:1599px) {
  .cp-public-bar {
    display:grid; grid-template-columns:118px minmax(0,1fr) auto;
    grid-template-areas:"brand search actions" "menu menu menu";
    column-gap:24px; row-gap:0; min-height:0; padding-block:8px 0;
  }
  .cp-public-brand { grid-area:brand; }
  .cp-public-search { grid-area:search; justify-self:stretch; width:100%; min-width:0; max-width:none; }
  .cp-public-search-popover { top:calc(100% + 54px); }
  .cp-public-actions { grid-area:actions; margin-left:0; }
  .cp-public-menu { grid-area:menu; justify-self:center; }
}
@media(min-width:1600px) {
  .cp-public-bar { width:min(1700px,100%); gap:clamp(12px,1.4vw,24px); min-height:84px; }
  .cp-public-menu { margin-inline:auto !important; }
  .cp-public-search { flex:1 1 390px; min-width:320px; max-width:520px; }
}
@media(prefers-reduced-motion:reduce) { .cp-public-header * { scroll-behavior:auto; } }
