/* Shared header and navigation. Scoped to the separately switchable navigation. */
.cbn-modern { --cbn-blue:#2f6ac9; --cbn-ink:#214f98; --cbn-text:#263d58; --cbn-muted:#586c85; --cbn-line:#dde6f1; --cbn-sky:#f0f6fc; --cbn-yellow:#ffdf43; }
/* Type is fixed here so the navigation reads the same on every page. Page CSS may redefine --cb-font-body (dropping the
   size-adjusted Latin face) or give body its own weight; none of that is inherited. Faces a page does not define are skipped. */
:is(.cbn-header,.cbn-dialog) { font-family:"Zen Maru Latin Fit","Zen Maru Gothic","CB LP Zen Maru","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif; font-weight:400; font-style:normal; font-variant:normal; font-feature-settings:normal; text-transform:none; text-rendering:auto; text-autospace:normal; overflow-wrap:normal; color:var(--cbn-text); font-size:14px; line-height:1.7; letter-spacing:.02em; text-align:left; }
:is(.cbn-header,.cbn-dialog) * { box-sizing:border-box; }
:is(.cbn-header,.cbn-dialog) a { color:inherit; text-decoration:none; }
:is(.cbn-header,.cbn-dialog) button { font:inherit; cursor:pointer; }
/* Form controls do not inherit letter-spacing by default; some pages' resets make them inherit it. Keep the default everywhere. */
:is(.cbn-header,.cbn-dialog) :where(button,input,select,textarea) { letter-spacing:normal; }
:is(.cbn-header,.cbn-dialog) svg { display:block; width:22px; height:22px; flex:none; }
:is(.cbn-header,.cbn-dialog) :is(a,button,input,select,summary):focus-visible { outline:3px solid var(--cbn-blue); outline-offset:4px; }
.cbn-header { background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; }
.cbn-bar { display:flex; align-items:center; gap:28px; padding:16px 28px; max-width:1600px; margin:auto; }
.cbn-logo { display:block; flex:none; }
.cbn-logo img { display:block; width:202px; height:auto; }
.cbn-desktop { display:flex; align-items:center; gap:22px; margin-left:auto; }
.cbn-menu { position:static; }
.cbn-entry { display:flex; align-items:center; gap:2px; }
.cbn-entry .cbn-menu>summary { width:24px; justify-content:center; }
.cbn-menu>summary { display:flex; align-items:center; gap:5px; list-style:none; min-height:44px; cursor:pointer; white-space:nowrap; font-size:14px; font-weight:700; color:var(--cbn-text); }
.cbn-menu summary::-webkit-details-marker { display:none; }
.cbn-menu>summary svg { width:12px; height:12px; transition:transform .15s; }
.cbn-menu[open]>summary svg { transform:rotate(180deg); }
.cbn-menu[open]>summary,.cbn-desktop .is-current>summary,.cbn-desktop__direct.is-current { color:var(--cbn-blue); }
.cbn-desktop__direct { display:flex; align-items:center; min-height:44px; font-weight:700; white-space:nowrap; }
.cbn-menu>summary:hover,.cbn-desktop__direct:hover { color:var(--cbn-blue); }
.cbn-tools { display:flex; gap:10px; align-items:center; flex:none; }
.cbn-tool { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1px; width:44px; height:46px; background:transparent; border:0; color:var(--cbn-ink); padding:0; }
.cbn-tool span { font-size:10px; font-weight:700; white-space:nowrap; }
.cbn-tool:hover { background:var(--cbn-sky); border-radius:8px; }
.cbn-header-line,.cbn-header-booking { display:flex; justify-content:center; align-items:center; gap:5px; min-height:44px; border-radius:24px; padding:10px 17px; font-size:12px; font-weight:700; white-space:nowrap; }
.cbn-header .cbn-header-line { background:var(--cb-line,#06c755); color:#fff; }
.cbn-header-line span { font-size:11px; }
.cbn-header .cbn-header-booking { background:var(--cbn-yellow); color:var(--cbn-ink); }
.cbn-header-booking svg { width:16px; height:16px; margin-left:4px; }
.cbn-menu-button { display:none; }
.cbn-trust { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:6px 30px; background:var(--cbn-sky); font-size:11px; color:#50627a; border-top:1px solid #e8eef6; }
.cbn-trust p { display:flex; flex-wrap:wrap; gap:5px 22px; margin:0; }
.cbn-trust p>span { white-space:nowrap; }
.cbn-trust b { color:var(--cbn-ink); font-weight:700; }
.cbn-utility { display:flex; align-items:center; gap:24px; white-space:nowrap; }
.cbn-utility>a:last-child { font-size:13px; font-weight:700; color:var(--cbn-ink); }
.cbn-utility small { font-size:10px; font-weight:400; color:var(--cbn-muted); margin-left:10px; }
.cbn-panel { position:absolute; top:100%; left:0; right:0; display:grid; grid-template-columns:minmax(240px,1.1fr) 1fr 1fr; gap:44px; padding:36px max(40px,calc((100vw - 1180px)/2)) 40px; background:#fff; border-top:1px solid var(--cbn-line); border-bottom:1px solid var(--cbn-line); box-shadow:0 18px 28px rgba(27,57,100,.1); }
.cbn-script { font-family:"Caveat","CB LP Caveat",cursive; font-size:30px; line-height:1.15; color:var(--cbn-blue); font-weight:600; letter-spacing:0; margin:0 0 12px; }
.cbn-panel__title { font-size:23px; font-weight:700; color:var(--cbn-ink); margin:0 0 10px; line-height:1.6; }
.cbn-panel__description { font-size:13px; color:var(--cbn-muted); margin:0 0 20px; max-width:300px; }
.cbn-panel .cbn-panel__all { display:inline-flex; align-items:center; gap:18px; font-size:13px; font-weight:700; color:var(--cbn-ink); border-bottom:1px solid #aebfd7; padding-bottom:5px; }
.cbn-panel__all svg { width:18px; }
.cbn-panel__group { border-left:1px solid var(--cbn-line); padding-left:28px; }
.cbn-panel__group>p { color:var(--cbn-muted); font-size:11px; margin:0 0 10px; }
.cbn-panel__group>a { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:42px; font-weight:700; font-size:14px; padding:7px 0; }
.cbn-panel__group>a svg { width:15px; height:15px; color:#8096b4; }
.cbn-panel__group--cities { display:grid; grid-template-columns:1fr 1fr; column-gap:26px; align-content:start; }
.cbn-panel__group--cities>p,.cbn-panel__group--cities>a:nth-child(2) { grid-column:1/-1; }
.cbn-panel a:hover,.cbn-panel a[aria-current] { color:var(--cbn-blue); }
.cbn-panel { max-height:calc(100dvh - 150px); overflow-y:auto; overscroll-behavior:contain; }
.cbn-dialog { position:fixed; margin:auto; padding:0; border:0; max-height:100dvh; max-width:100vw; background:#fff; color:var(--cbn-text); box-shadow:0 12px 60px #15346626; overscroll-behavior:contain; }
.cbn-dialog:not([open]) { display:none; }
.cbn-dialog::backdrop { background:rgba(18,40,70,.36); }
.cbn-dialog-open { overflow:hidden; }
.cbn-close { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--cbn-line); border-radius:50%; background:#fff; color:var(--cbn-ink); padding:0; flex:none; }
.cbn-close:hover { background:var(--cbn-sky); }
.cbn-drawer { inset:0 0 0 auto; margin:0; width:460px; height:100dvh; max-height:100dvh; }
.cbn-drawer[open] { display:flex; flex-direction:column; }
.cbn-drawer__head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 24px; border-bottom:1px solid var(--cbn-line); flex:none; }
.cbn-drawer__head img { display:block; width:162px; height:auto; }
.cbn-drawer__body { overflow:auto; overscroll-behavior:contain; padding:26px 24px 24px; flex:1; }
.cbn-drawer__title { margin-bottom:23px; }
.cbn-drawer__title .cbn-script { font-size:27px; margin-bottom:8px; }
.cbn-drawer__title .cbn-drawer__title-text { color:var(--cbn-ink); font-size:22px; line-height:1.6; margin:0; font-weight:700; letter-spacing:0; }
.cbn-quick { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cbn-quick>a { display:flex; position:relative; flex-direction:column; align-items:flex-start; padding:17px 16px 15px; border-radius:16px; background:#eaf2fc; color:var(--cbn-ink); }
.cbn-quick>a:last-child { background:#fff8da; }
.cbn-quick>a>svg:first-child { width:28px; height:28px; margin-bottom:9px; }
.cbn-quick>a>svg:last-child { position:absolute; right:13px; top:21px; width:17px; height:17px; }
.cbn-quick strong { font-size:17px; display:block; }
.cbn-quick small { display:block; font-size:10px; margin-top:3px; color:var(--cbn-muted); }
.cbn-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; padding:12px 0 16px; }
.cbn-shortcuts a { display:flex; align-items:center; justify-content:space-between; min-height:41px; font-size:12px; font-weight:700; color:var(--cbn-ink); }
.cbn-shortcuts a::after { content:'→'; font-size:14px; color:#6c86ab; }
.cbn-mobile-sections { border-top:1px solid var(--cbn-line); }
.cbn-mobile-sections>details,.cbn-mobile-direct { border-bottom:1px solid var(--cbn-line); }
.cbn-mobile-sections summary,.cbn-mobile-direct { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:13px 0; list-style:none; font-size:14px; font-weight:700; cursor:pointer; color:var(--cbn-ink); }
.cbn-mobile-sections summary::-webkit-details-marker { display:none; }
.cbn-mobile-direct svg { width:18px; height:18px; }
.cbn-plus { width:18px; height:18px; position:relative; flex:none; }
.cbn-plus::before,.cbn-plus::after { content:''; position:absolute; width:13px; height:1.5px; top:50%; left:50%; transform:translate(-50%,-50%); background:currentColor; border-radius:1px; }
.cbn-plus::after { transform:translate(-50%,-50%) rotate(90deg); }
.cbn-mobile-sections details[open] .cbn-plus::after { transform:translate(-50%,-50%); }
.cbn-mobile-sections__content { padding:0 0 21px; }
.cbn-mobile-sections__content>p { color:var(--cbn-muted); font-size:11px; margin:16px 0 5px; }
.cbn-mobile-all { display:block; color:var(--cbn-blue)!important; font-size:13px; font-weight:700; padding:8px 0; }
.cbn-mobile-links { display:grid; grid-template-columns:1fr 1fr; column-gap:16px; }
.cbn-mobile-links a { display:flex; align-items:center; min-height:44px; font-size:12px; line-height:1.8; padding:7px 0; }
.cbn-drawer__contact { display:flex; flex-direction:column; gap:12px; padding-top:22px; font-size:12px; color:var(--cbn-ink); }
.cbn-drawer__contact small { display:block; color:var(--cbn-muted); font-size:10px; }
.cbn-drawer__footer { display:grid; grid-template-columns:.85fr 1.3fr; gap:9px; padding:14px 20px max(14px,env(safe-area-inset-bottom)); border-top:1px solid var(--cbn-line); background:#fff; flex:none; }
.cbn-drawer__footer a { display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 6px; border-radius:12px; text-align:center; font-size:12px; font-weight:700; }
.cbn-dialog .cbn-line { background:var(--cb-line,#06c755); color:#fff; }
.cbn-dialog .cbn-booking { background:var(--cbn-yellow); color:var(--cbn-ink); }
.cbn-search { width:min(700px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:0; border-radius:28px; overflow:auto; }
.cbn-search>.cbn-close { position:absolute; right:18px; top:18px; z-index:1; background:#ffffffc9; }
.cbn-search__intro { position:relative; padding:32px 40px 29px; background:#edf5fd; isolation:isolate; }
.cbn-search__intro::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:13px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='350' height='13' viewBox='0 0 350 13'%3E%3Cpath d='M0 6Q44-6 88 6T175 6T263 6T350 6V13H0Z' fill='white'/%3E%3C/svg%3E") repeat-x bottom; }
.cbn-search__intro .cbn-script { font-size:31px; margin:0 0 12px; }
.cbn-search .cbn-search__title { position:relative; z-index:1; font-size:27px; line-height:1.7; letter-spacing:.035em; font-weight:700; margin:0 0 10px; padding:0; border:0; color:var(--cbn-ink); }
.cbn-search .cbn-search__title>span { display:inline-block; }
.cbn-search__highlight { background:linear-gradient(transparent 73%,#ffdf43 73%,#ffdf43 90%,transparent 90%); }
.cbn-search__description { color:#526b87; font-size:12px; line-height:1.9; margin:0; }
.cbn-search__mobile-break { display:none; }
.cbn-search .cbn-search__art { position:absolute; width:102px; height:90px; right:33px; bottom:26px; z-index:-1; }
.cbn-search__body { padding:26px 40px 30px; }
.cbn-search__scopes { display:grid; grid-template-columns:1fr 1fr; gap:12px; min-width:0; padding:0; margin:0 0 24px; border:0; }
.cbn-search__scopes legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.cbn-search__scope { position:relative; display:flex; align-items:center; gap:12px; margin:0; padding:15px 16px; border:1px solid var(--cbn-line); border-radius:14px; cursor:pointer; color:#526b87; background:#fff; }
.cbn-search__scope input { position:absolute; width:1px; height:1px; margin:0; opacity:0; }
.cbn-search__scope:has(input:checked) { border-color:var(--cbn-blue); background:#f0f6ff; color:var(--cbn-ink); }
.cbn-search__scope:has(input:focus-visible) { outline:3px solid var(--cbn-blue); outline-offset:3px; }
.cbn-search__scope:hover { border-color:#85a6d4; }
.cbn-search__scope>svg { width:26px; height:26px; }
.cbn-search__scope strong { display:block; font-size:14px; font-weight:700; line-height:1.6; }
.cbn-search__scope small { display:block; font-size:10px; margin-top:3px; color:var(--cbn-muted); }
.cbn-search__scope i { position:relative; width:15px; height:15px; border:1px solid #b6c5d8; border-radius:50%; margin-left:auto; flex:none; }
.cbn-search__scope:has(input:checked) i { border-color:var(--cbn-blue); background:var(--cbn-blue); }
.cbn-search__scope:has(input:checked) i::after { content:''; position:absolute; width:4px; height:7px; border:solid white; border-width:0 1.5px 1.5px 0; left:4px; top:2px; transform:rotate(45deg); }
.cbn-search__label { display:block; color:var(--cbn-ink); font-size:12px; font-weight:700; margin-bottom:9px; }
.cbn-search__field { display:flex; gap:10px; align-items:stretch; }
.cbn-search__input-wrap { min-width:0; flex:1; display:flex; align-items:center; gap:10px; border:1px solid #b1c5df; border-radius:12px; padding:0 16px; background:#fff; }
/* Focus belongs to the input container; it must never overlap the separate submit button. */
.cbn-search__input-wrap:focus-within { border-color:var(--cbn-blue); outline:2px solid var(--cbn-blue); outline-offset:2px; }
.cbn-search__input-wrap>svg { width:19px; height:19px; color:#6d8fb9; }
.cbn-search__field input[type="search"] { width:100%; min-width:0; height:56px; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; font:inherit; font-size:16px; color:var(--cbn-text); padding:10px 0; appearance:none; -webkit-appearance:none; }
.cbn-search__field input[type="search"]:focus,.cbn-search__field input[type="search"]:focus-visible { outline:none; box-shadow:none; }
.cbn-search__field input::placeholder { color:#6a7e96; opacity:1; }
.cbn-search__field button { display:flex; align-items:center; justify-content:center; gap:13px; padding:10px 23px; border:0; border-radius:12px; background:var(--cbn-blue); color:#fff; font-size:15px; font-weight:700; white-space:nowrap; flex:none; }
.cbn-search__field button:hover { background:var(--cbn-ink); }
.cbn-search__field button:focus-visible { outline-offset:2px; }
.cbn-search__field button svg { width:18px; height:18px; }
.cbn-search__examples { display:flex; flex-wrap:wrap; align-items:center; gap:5px 7px; margin-top:14px; }
.cbn-search__examples[hidden] { display:none; }
.cbn-search__examples>span { color:var(--cbn-muted); font-size:11px; margin-right:2px; }
.cbn-search__examples a { display:inline-flex; align-items:center; min-height:32px; padding:3px 12px; border:1px solid #dbe5f2; border-radius:18px; font-size:12px; color:var(--cbn-ink); background:#f6f9fd; }
.cbn-search__examples a:hover { border-color:var(--cbn-blue); background:#edf4fd; }
.cbn-search__links { display:grid; grid-template-columns:1.15fr 1fr; gap:20px; border-top:1px solid var(--cbn-line); margin-top:24px; padding-top:20px; }
.cbn-search__links a { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--cbn-ink); min-height:44px; }
.cbn-search__links a+a { border-left:1px solid var(--cbn-line); padding-left:20px; }
.cbn-search__links strong { display:block; font-size:13px; font-weight:700; }
.cbn-search__links small { display:block; font-size:10px; color:var(--cbn-muted); margin-top:4px; }
.cbn-search__links svg { width:18px; height:18px; }
.cbn-search__links a:hover strong { text-decoration:underline; text-underline-offset:4px; }
/* The floating buttons keep the themes' own rules, the same as with the legacy navigation: below 920px the sticky bar,
   the AI pill and the phone button; from 920px the scroll-follow CTA once scrolled (each site decides when, and hides them on the form confirm step).
   The CTA box is transparent; only its buttons take clicks, so links and filters behind the gaps stay usable,
   and while it is faded out its buttons are out of the tab order. Whether it shows is still left to the theme. */
@media (min-width:920px) {
 body.cbn-modern .cb-desk-cta { visibility:hidden; transition:opacity .35s ease, transform .35s cubic-bezier(.4,0,.2,1), visibility 0s linear .35s; }
 body.cbn-modern.cb-sticky-on .cb-desk-cta { visibility:visible; pointer-events:none; transition-delay:0s; }
 body.cbn-modern.cb-sticky-on .cb-desk-cta > * { pointer-events:auto; }
}
@media (max-width:1320px) and (min-width:1180px) {
 .cbn-bar { gap:18px; padding-inline:22px; }
 .cbn-logo img { width:180px; }
 .cbn-desktop { gap:15px; }
 .cbn-menu>summary,.cbn-desktop__direct { font-size:13px; }
 .cbn-header-line { display:none; }
}
@media (max-width:1179px) {
 .cbn-bar { padding:10px 20px; gap:16px; min-height:68px; }
 .cbn-logo img { width:180px; }
 .cbn-desktop,.cbn-header-line,.cbn-header-booking,.cbn-utility { display:none; }
 .cbn-tools { margin-left:auto; gap:12px; }
 .cbn-menu-button { display:flex; }
 .cbn-trust { padding:5px 20px; justify-content:center; font-size:10px; }
 .cbn-trust p { justify-content:center; gap:3px 18px; }
}
@media (max-width:480px) {
 .cbn-bar { padding-inline:16px; }
 .cbn-logo img { width:169px; }
 .cbn-trust { padding:5px 12px; }
 .cbn-trust p { gap:3px 16px; }
 .cbn-trust p>span:last-child { display:none; }
 .cbn-drawer { width:100%; }
}
@media (max-width:600px) {
 .cbn-search { width:calc(100% - 24px); max-height:calc(100dvh - 24px); border-radius:22px; }
 .cbn-search>.cbn-close { top:12px; right:12px; }
 .cbn-search__intro { padding:27px 22px 27px; }
 .cbn-search__intro .cbn-script { font-size:29px; margin-bottom:14px; }
 .cbn-search .cbn-search__title { font-size:23px; max-width:280px; margin-bottom:10px; line-height:1.65; }
 .cbn-search .cbn-search__title>span:first-child { display:block; }
 .cbn-search__description { font-size:11px; }
 .cbn-search__mobile-break { display:block; }
 .cbn-search .cbn-search__art { width:89px; height:78px; right:19px; bottom:47px; }
 .cbn-search__body { padding:22px 20px 23px; }
 .cbn-search__scopes { gap:8px; margin-bottom:20px; }
 .cbn-search__scope { gap:7px; padding:12px 10px; }
 .cbn-search__scope>svg { width:21px; height:21px; }
 .cbn-search__scope strong { font-size:12px; letter-spacing:0; }
 .cbn-search__scope small { font-size:9px; letter-spacing:0; }
 .cbn-search__scope i { display:none; }
 .cbn-search__input-wrap { padding:0 11px; gap:8px; }
 .cbn-search__field { gap:8px; }
 .cbn-search__field input[type="search"] { height:52px; }
 .cbn-search__field button { padding:10px 15px; font-size:14px; }
 .cbn-search__field button svg { display:none; }
 .cbn-search__examples { gap:5px; }
 .cbn-search__examples a { font-size:11px; padding-inline:10px; min-height:34px; }
 .cbn-search__links { grid-template-columns:1fr; gap:12px; margin-top:20px; padding-top:17px; }
 .cbn-search__links a+a { border-left:0; padding-left:0; }
 .cbn-search__links a { min-height:40px; }
 .cbn-search__links small { margin-top:1px; }
}
@media (max-width:359px) {
 .cbn-logo img { width:148px; }
 .cbn-tools { gap:5px; }
 .cbn-drawer__body { padding-inline:18px; }
 .cbn-drawer__title .cbn-drawer__title-text { font-size:20px; }
 .cbn-quick { gap:9px; }
 .cbn-quick>a { padding-inline:13px; }
 .cbn-quick strong { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { .cbn-header *, .cbn-dialog * { transition:none!important; scroll-behavior:auto!important; } }
