/* OPTCG refinement: retain the reference palette, fonts, artwork and 6px card corners. */
:root{--oc-space-1:4px;--oc-space-2:8px;--oc-space-3:12px;--oc-space-4:16px;--oc-space-6:24px;--oc-space-8:32px;--oc-space-12:48px;--oc-control:40px;--oc-focus:#0065ff}
::selection{background:#dbe9ff;color:#081b4f}
html{scrollbar-color:#a6b9d8 #f3f6fc}
a{text-underline-offset:.18em;text-decoration-thickness:1px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--oc-focus);outline-offset:3px}
:where(input,textarea){caret-color:var(--navy)}
:where(h1,h2,h3){text-wrap:balance}
:where(p,li,dd){overflow-wrap:anywhere}
.oc-home-content{margin-block:var(--oc-space-8) var(--oc-space-12)}
.oc-home-content>h2,.oc-section-head{margin-block-start:var(--oc-space-12)!important;margin-block-end:var(--oc-space-4)}
.oc-home-content>h2:first-child,.oc-home-content>.oc-section-head:first-child{margin-block-start:0!important}
.oc-home-content>h2,.oc-section-head h2{font-size:clamp(20px,1.6vw,24px);line-height:1.25;font-weight:700}
.oc-section-head p{max-width:70ch;margin-block-end:var(--oc-space-3)}
.oc-data-block .demo-notice{padding:8px 12px;margin-block:0 12px;text-align:start;line-height:1.5}
.oc-data-block .tile-content{padding:12px;gap:6px}
.oc-data-block .full-card .tile-content{padding:12px 0}
.oc-data-block .tile-content :is(h3,p){margin:0}
.oc-data-block .tile-content h3{font-size:14px;line-height:1.4}
.oc-data-block .tile-content :is(.metadata,.japanese,.tile-name){font-size:12px;line-height:1.5}
.oc-data-block .chips{row-gap:5px;column-gap:4px}
.oc-data-block .tile .media:hover{text-decoration:none}
.oc-data-block .tile .tile-content>.button{margin-block-start:auto;padding-block:9px}
.oc-data-block .tile-content>.chips+.button{margin-block-start:12px}
.oc-data-block .character-strip .tile-content{padding:10px 6px}
.oc-data-block .character-strip h3{font-size:12px;line-height:1.4}
.oc-data-block .compact-catalogue .tile-content h3{font-size:12px}
.oc-data-block .compact-catalogue .tile-content{padding:8px}
.oc-data-block .tile-content>.metadata:last-child{margin-block-end:0}
.button,.select-label select,.filter-form input:not([type=checkbox]):not([type=radio]){min-height:var(--oc-control)}
.button{line-height:1.35;font-weight:600}
.button.primary{color:#fff;background:var(--blue)}
.button.primary:hover{background:#004dcc;color:#fff}
.button[aria-current=true],.pagination [aria-current=page]{text-decoration:none}
button:disabled,[aria-disabled=true]{cursor:not-allowed}
.toolbar{gap:12px;align-items:end;margin-block-end:20px}
.toolbar h2{font-size:17px;flex:1 1 200px;margin:0;align-self:center}
.toolbar .select-label{gap:4px;font-size:12px}
.toolbar .view-buttons{display:flex;gap:6px;flex-wrap:wrap}
.filters{padding:16px}.filter-form>label,.filter-form>fieldset{margin-block-end:12px}
.filter-form label{line-height:1.5}.filter-form .check{min-height:32px;align-items:center}
.filter-form summary{padding-block:8px}.filter-form .metadata{font-size:12px;line-height:1.55}
.facts{font-size:13px;line-height:1.6}.facts dd{min-width:0}
.tabs{gap:24px;scroll-padding-inline:8px}
.tabs>a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;padding-block:10px}
.table-scroll{overscroll-behavior-inline:contain}
.price-table{font-variant-numeric:tabular-nums}
.price-table :is(th,td){padding:12px 10px;vertical-align:middle}
.price-table th{font-size:12px;line-height:1.5}.price-table td{font-size:13px}
.price-table tbody tr:hover{background:#f3f6fc}
.price-table td>.button{min-height:var(--oc-control);font-size:12px}
.pagination{gap:8px;flex-wrap:wrap}.pagination :is(a,span){min-width:40px;min-height:40px}
.empty{padding:40px 20px;max-width:70ch;margin-inline:auto}
.empty h3{font-size:18px}.empty p{font-size:14px;line-height:1.65;margin:8px 0 0}
.gallery-thumb{min-width:44px;min-height:44px}.gallery-thumb[aria-current=true]{outline:1px solid var(--blue);outline-offset:1px}
#oc-lightbox{border:0;border-radius:6px;padding:16px;color:var(--navy);background:#fff;max-height:90dvh}
#oc-lightbox::backdrop{background:#081b4fcc}
#oc-lightbox :is(.zoom-image,.image-fallback)[hidden]{display:none!important}
#oc-lightbox .zoom-image{max-height:76dvh;width:auto;max-width:100%;margin:auto;object-fit:contain}
#oc-lightbox [data-close-dialog]{min-width:44px;min-height:44px;margin-block-end:8px}
.oc-block-header .wp-block-navigation a{font-size:13px;line-height:1.4;padding-block:10px}
.oc-block-header .wp-block-search__input{color:var(--navy);background:white}
.oc-block-footer{padding-block:40px}.oc-block-footer p{font-size:14px;line-height:1.7;max-width:65ch}
.oc-native-content .entry-content{line-height:1.75}.oc-native-content .entry-content>p{max-width:min(760px,72ch)}
.oc-native-content .entry-content :is(h2,h3){margin-block-start:32px;margin-block-end:12px}
.oc-native-content>.container>.wp-block-search{max-width:590px;margin-block:20px 32px}
.oc-empty-page{min-height:55vh;display:flex;align-items:center}
.oc-empty-page h1{font-size:clamp(28px,4vw,44px)}
@media(max-width:1100px){.oc-block-header .header-inner{flex-wrap:wrap;gap:12px}.oc-block-header .wp-block-search{flex-basis:100%;max-width:none}}
@media(max-width:640px){
 :root{--oc-control:44px}
 .oc-home-content{margin-block:24px 32px}.oc-home-content>h2,.oc-section-head{margin-block-start:32px!important}
 .oc-data-block .tile-content{padding:10px}.oc-data-block .full-card .tile-content{padding:10px 0}
 .oc-data-block .tile-content h3{font-size:13px}.oc-data-block .character-strip h3{font-size:11px}
 .toolbar{gap:10px}.toolbar h2{flex-basis:100%}.toolbar>.select-label{flex:1;min-width:120px}.toolbar .view-buttons{flex-basis:100%}
 .filters.open{padding-block-end:max(90px,env(safe-area-inset-bottom))}
 .filters input,.filters select,.oc-block-header .wp-block-search__input{font-size:16px}
 .filter-form .check{min-height:44px}.tabs{gap:20px}
 .price-table :is(th,td){padding:10px 6px}.price-table td{font-size:12px}
 .pagination :is(a,span){min-width:44px;min-height:44px}
 .oc-block-header .header-inner{gap:10px}.oc-block-header .header-inner>.wp-block-navigation{order:-1;margin-inline-end:auto}
 .oc-block-header .wp-block-navigation__responsive-container-open{min-width:44px;min-height:44px;justify-content:center}
 .oc-block-header .wp-block-site-title{font-size:14px;max-width:145px}.oc-block-header .wp-block-site-logo img{max-width:125px}
 .oc-block-header .wp-block-navigation a{min-height:44px}.oc-block-header .wp-block-search{order:2}.oc-block-footer{padding-block:28px}
}
@media(prefers-reduced-motion:no-preference){.button,.oc-data-block .tile a{transition:color .15s ease,border-color .15s ease,background-color .15s ease}}

/* One catalogue structure for every CPT: persistent desktop sidebar, smaller-screen drawer. */
@media(min-width:1024px){
 .catalogue:not(.compact-catalogue){display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}
 .catalogue:not(.compact-catalogue)>.filters{
  display:block;position:sticky;top:24px;align-self:start;margin:0;
  max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;
  scrollbar-gutter:stable;
 }
 body.admin-bar .catalogue:not(.compact-catalogue)>.filters{top:56px;max-height:calc(100dvh - 80px)}
 .catalogue:not(.compact-catalogue) .filter-top{display:flex;margin-block-end:12px}
 .catalogue:not(.compact-catalogue) .filter-form{display:block}
 .catalogue:not(.compact-catalogue) .filter-form>.button{width:100%}
 .js .catalogue:not(.compact-catalogue)>[data-open-filters],
 .js .catalogue:not(.compact-catalogue) [data-close-filters]{display:none!important}
}
@media(min-width:1024px) and (max-width:1199px){
 .catalogue:not(.compact-catalogue){grid-template-columns:230px minmax(0,1fr);gap:20px}
 .catalogue:not(.compact-catalogue) .result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1023px){
 .catalogue:not(.compact-catalogue){display:block}
 .catalogue:not(.compact-catalogue)>.filters{position:static;display:block;margin-block-end:20px;max-height:none}
 .js .catalogue:not(.compact-catalogue)>.filters{display:none}
 .js .catalogue:not(.compact-catalogue)>.filters.open{
  display:block;position:fixed;inset:0;z-index:100;width:100%;height:100dvh;
  max-height:none;margin:0;padding:22px 20px max(90px,env(safe-area-inset-bottom));
  overflow-y:auto;border:0;border-radius:0;background:white;
 }
 .js .catalogue:not(.compact-catalogue)>[data-open-filters]{display:inline-flex!important;min-height:44px;margin-block-end:16px}
 .catalogue:not(.compact-catalogue) .filter-top{display:flex}
 .js .catalogue:not(.compact-catalogue) .filter-top [data-close-filters]{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px}
 .catalogue:not(.compact-catalogue) .filters.open .filter-top{position:sticky;top:-22px;padding-block:10px;background:white;z-index:3}
 .catalogue:not(.compact-catalogue) .filter-form{display:block}
}

/* Suggestions are real CPT links; input/submit remain a normal WordPress GET form. */
.oc-autocomplete{position:relative}
.oc-suggestions{position:absolute;inset-block-start:calc(100% + 8px);inset-inline:0;z-index:100;max-height:min(420px,60vh);overflow-y:auto;background:#fff;color:var(--navy);border:1px solid var(--input);border-radius:6px;box-shadow:0 8px 24px #081b4f1f;text-align:start}
.oc-suggestions[hidden],.oc-suggestions [hidden]{display:none!important}
.oc-suggestions ul{list-style:none;margin:0;padding:4px}
.oc-suggestions li{margin:0;padding:0}
.oc-suggestions li>a{display:flex!important;align-items:center;gap:12px;min-height:56px;padding:10px 12px!important;color:var(--navy)!important;background:#fff;border-radius:4px;text-decoration:none;font-size:14px;line-height:1.4}
.oc-suggestions li[aria-selected=true]>a,.oc-suggestions li>a:hover{background:var(--pale)}
.oc-suggestions img{width:36px;height:48px;flex:0 0 36px;object-fit:contain;background:var(--pale);border-radius:2px}
.oc-suggestion-body{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}
.oc-suggestion-body strong{font-size:14px;line-height:1.4}
.oc-suggestion-meta{font-size:12px;color:var(--muted)}
.oc-suggestions .oc-suggestions-message{padding:14px;margin:0;color:var(--muted)!important;font-size:14px;line-height:1.5}
.home-hero,.oc-home-cover,.oc-home-cover .wp-block-cover__inner-container{overflow:visible}
.oc-block-header{position:relative;z-index:50}
.oc-block-header .oc-suggestions{inset-inline-start:auto;min-width:320px;width:100%}
@media(max-width:640px){.oc-block-header .oc-suggestions{min-width:0;inset-inline:0}.oc-suggestions li>a{min-height:56px}}

/* Gutenberg owns its responsive overlay; legacy .js nav hiding must never hide its toggle. */
@media(max-width:900px){
 .oc-block-header .header-inner>.wp-block-navigation{
  display:flex;visibility:visible;position:static;order:-1;flex:0 0 44px;
  width:44px;min-width:44px;margin:0;margin-inline-end:auto;padding:0;border:0;
 }
 .oc-block-header .wp-block-navigation__responsive-container-open{
  display:inline-flex!important;align-items:center;justify-content:center;
  visibility:visible;opacity:1;width:44px;height:44px;min-width:44px;min-height:44px;
  padding:10px;color:var(--navy);background:transparent;border:0;border-radius:4px;
 }
 .oc-block-header .wp-block-navigation__responsive-container-open svg{display:block;width:24px;height:24px;fill:currentColor}
 .oc-block-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
 .oc-block-header .wp-block-navigation__responsive-container.is-menu-open{display:flex!important}
 .oc-block-header .wp-block-navigation__responsive-container-close{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;color:var(--navy)}
 .oc-block-header .wp-block-site-title{flex:1;min-width:0}
}

/* Reference-inspired left drawer. Core Navigation retains toggle, Escape and focus handling. */
.oc-menu-intro,.oc-menu-icon{display:none}
@media(max-width:900px){
 .oc-block-header .oc-header-navigation .wp-block-navigation__responsive-container.is-menu-open{
  position:fixed;inset:0;padding:0!important;background:rgba(8,27,79,.64)!important;
  color:var(--navy);align-items:flex-start;justify-content:flex-start;overflow:hidden;
 }
 .oc-header-navigation .is-menu-open .wp-block-navigation__responsive-close{
  width:min(88vw,400px);max-width:100%;height:100dvh;margin:0!important;
  background:#fff;box-shadow:8px 0 40px #081b4f26;overflow-y:auto;overscroll-behavior:contain;
 }
 .oc-header-navigation .is-menu-open .wp-block-navigation__responsive-dialog{position:relative;min-height:100%;margin:0!important}
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation__responsive-container-close{
  position:absolute;inset-block-start:14px;inset-inline-start:12px;inset-inline-end:auto;z-index:5;
  width:44px;height:44px;border-radius:6px;background:white;
 }
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation__responsive-container-content{
  padding:0 0 max(24px,env(safe-area-inset-bottom))!important;gap:0;align-items:stretch;
 }
 .oc-header-navigation .is-menu-open .oc-menu-intro{display:block;width:100%}
 .oc-block-header .oc-menu-brand{display:flex;align-items:center;justify-content:center;min-height:76px;padding:8px 24px 8px 64px;border-bottom:1px solid #dfe5ed}
 .oc-block-header .oc-menu-brand a,.oc-block-header .oc-menu-brand .custom-logo-link{display:inline-flex;width:auto;max-width:100%;margin:0;padding:0;border:0;flex:none}
 .oc-block-header .oc-menu-brand img{display:block;width:auto;max-width:170px;max-height:56px;object-fit:contain}
 .oc-menu-hero{display:flex;flex-direction:column;justify-content:center;min-height:176px;padding:24px 44% 24px 20px;background:linear-gradient(90deg,#e9f6ff 0%,#e9f6ffe8 42%,#e9f6ff00 75%),url('../images/hero-home.jpg') center/cover no-repeat;color:#081b4f}
 .oc-menu-hero p{margin:0 0 8px;font-size:22px;line-height:1.15;font-weight:800;letter-spacing:-.025em}
 .oc-menu-hero span{font-size:12px;line-height:1.55;font-weight:500}
 .oc-block-header .oc-menu-search{padding:16px 18px;border-bottom:1px solid #dfe5ed}
 .oc-block-header .oc-menu-search .wp-block-search{display:block;width:100%;max-width:none;margin:0}
 .oc-block-header .oc-menu-search .wp-block-search__inside-wrapper{display:flex;align-items:stretch;height:44px;padding:0;background:#f4f7fb;border:1px solid #c0ccdb;border-radius:5px;overflow:visible}
 .oc-block-header .oc-menu-search .wp-block-search__input{width:100%;min-width:0;min-height:42px;padding:10px 12px;border:0;background:transparent;color:#081b4f;font-size:14px}
 .oc-block-header .oc-menu-search .wp-block-search__input::placeholder{color:#566780;opacity:1}
 .oc-block-header .oc-menu-search .wp-block-search__button{display:flex;align-items:center;justify-content:center;min-width:44px;width:44px;margin:0;padding:10px;border:0;border-radius:0 4px 4px 0;background:#081b4f;color:white}
 .oc-block-header .oc-menu-search .wp-block-search__button svg{width:24px;height:24px;fill:currentColor}
 .oc-block-header .oc-menu-search .oc-suggestions{width:100%;min-width:0;inset-inline:0}
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation__container{width:100%;gap:0;align-items:stretch!important;padding:8px 0;margin:0}
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation-item{width:100%;margin:0}
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation-item__content{
  display:flex;align-items:center;gap:14px;width:100%;box-sizing:border-box;min-height:58px;padding:14px 22px;
  color:#081b4f;font-size:16px;font-weight:600;line-height:1.4;text-align:start;text-decoration:none;border:0;border-radius:0;
 }
 .oc-header-navigation .is-menu-open .wp-block-navigation-item__label{flex:1;min-width:0;overflow-wrap:anywhere}
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation-item__content:hover,
 .oc-block-header .oc-header-navigation .is-menu-open .wp-block-navigation-item__content[aria-current=page]{background:#eaf3fc;color:#081b4f}
 .oc-header-navigation .is-menu-open .oc-menu-icon{display:block;flex:0 0 24px;width:24px;height:24px}
 .oc-header-navigation .is-menu-open .oc-menu-icon--chevron{flex-basis:16px;width:16px;height:16px;margin-inline-start:auto;color:#647a95}
 .oc-block-header .oc-header-navigation .is-menu-open a:focus-visible,
 .oc-block-header .oc-header-navigation .is-menu-open button:focus-visible{outline:3px solid #2276cc;outline-offset:-3px}
 .oc-block-header .oc-menu-search input:focus-visible{outline:3px solid #2276cc;outline-offset:-3px}
 .admin-bar .oc-header-navigation .is-menu-open .wp-block-navigation__responsive-close{height:calc(100dvh - var(--wp-admin--admin-bar--height,32px))}
}
@media(max-width:900px){.oc-block-header .oc-menu-search .oc-search-form .wp-block-search__button svg{fill:none;stroke:currentColor}}

/* Compact mobile price-list action; its full accessible name stays on the link. */
.price-table .oc-price-view-icon{display:none}
@media(max-width:640px){
 .price-table .oc-price-view-label{display:none}
 .price-table td>.oc-price-view{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;box-sizing:border-box}
 .price-table .oc-price-view-icon{display:block;width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor}
}
