:root { --jb-gutter: 40px; --jb-header-height: 96px; }
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-padding-top: var(--jb-header-height); }
body { margin: 0; word-break: keep-all; overflow-wrap: anywhere; }
img, video { max-width: 100%; }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
.jb-header { position: fixed; inset: 0 0 auto; z-index: 100; min-height: var(--jb-header-height); margin: 0; background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); transition: background-color .2s ease; }
.jb-header-inner { width: 100%; max-width: var(--wp--style--global--wide-size); margin-inline: auto; padding: 24px var(--jb-gutter); }
.home:not(.jb-header-scrolled) .jb-header { background: transparent; }
.home.jb-header-scrolled .jb-header { background: rgb(from var(--wp--preset--color--ink-90) r g b / .92); }
.wp-block-site-logo img { display: block; width: 120px; height: 48px; object-fit: contain; }
.jb-main { margin-top: 0; padding: calc(var(--jb-header-height) + var(--wp--preset--spacing--70)) var(--jb-gutter) var(--wp--preset--spacing--80); min-height: 55vh; }
.jb-main > .alignwide { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
.jb-front { margin-top: 0; }
.jb-section { padding: var(--wp--preset--spacing--80) var(--jb-gutter); margin-block: 0; }
.jb-hero { margin: 0; }
.jb-hero video { width: 100%; height: min(100vh, 900px); min-height: 480px; object-fit: cover; display: block; }
.jb-signature img { width: min(650px, 85vw); margin: auto; display: block; }
.jb-label { letter-spacing: .2em; text-transform: uppercase; }
.jb-label::before { content: ''; display: inline-block; vertical-align: middle; width: 32px; height: 1px; background: var(--wp--preset--color--accent); margin-right: 16px; }
.jb-service { border-top: 1px solid var(--wp--preset--color--line); padding-top: var(--wp--preset--spacing--60); }
.jb-numbers .wp-block-heading { margin-block: 0; }
.jb-numbers .wp-block-column { min-width: 0; }
.jb-query .wp-block-post { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: var(--wp--preset--spacing--60); }
.jb-query .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
.jb-works-page { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.jb-works-page a { color: inherit; }
.jb-works-page .wp-block-post-title { color: var(--wp--preset--color--paper); }
.jb-footer { padding: var(--wp--preset--spacing--80) var(--jb-gutter) var(--wp--preset--spacing--60); margin-top: 0; }
.jb-footer a { color: inherit; }
.jb-footer p { margin-block: var(--wp--preset--spacing--30); }
.jb-socials { display: flex; gap: var(--wp--preset--spacing--40); }
.jb-socials img { width: 28px; height: 28px; object-fit: contain; }
.wp-block-button .wp-block-button__link { border-radius: 0; }
.wp-block-button.is-style-accent .wp-block-button__link { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--ink); }
.jb-nav .wp-block-navigation__responsive-container-open { font-size: 0; color: inherit; }
.jb-nav .wp-block-navigation__responsive-container-open::before { content: '≡ MENU'; font-size: var(--wp--preset--font-size--small); letter-spacing: .12em; }
.jb-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); padding: 100px max(var(--jb-gutter), calc((100vw - 1200px) / 2)); }
.jb-nav .is-menu-open .wp-block-navigation__responsive-container-content { min-height: calc(100vh - 200px); justify-content: center; align-items: stretch; }
.jb-nav .is-menu-open .wp-block-navigation__container { width: 100%; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(5, auto); column-gap: var(--wp--preset--spacing--90); row-gap: var(--wp--preset--spacing--50); align-items: center; }
.jb-nav .is-menu-open .wp-block-navigation-item { font-size: var(--wp--preset--font-size--x-large); font-weight: 700; grid-column: 1; }
.jb-nav .is-menu-open .wp-block-navigation-item:nth-child(1) { grid-row: 1; }
.jb-nav .is-menu-open .wp-block-navigation-item:nth-child(2) { grid-row: 2; }
.jb-nav .is-menu-open .wp-block-navigation-item:nth-child(3) { grid-row: 3; }
.jb-nav .is-menu-open .wp-block-navigation-item:nth-child(4) { grid-row: 4; }
.jb-nav .is-menu-open .wp-block-navigation-item:nth-child(5) { grid-row: 5; }
.jb-nav .is-menu-open .jb-nav-contact { grid-column: 2; font-size: var(--wp--preset--font-size--body); font-weight: 400; }
.jb-nav .is-menu-open .jb-nav-contact:nth-child(6) { grid-row: 2; }
.jb-nav .is-menu-open .jb-nav-contact:nth-child(7) { grid-row: 3; }
.jb-nav .is-menu-open .jb-nav-contact:nth-child(8) { grid-row: 4; }
.jb-nav .wp-block-navigation__responsive-container-close { top: 32px; right: var(--jb-gutter); }
.jb-nav .wp-block-navigation__responsive-container-close::before { content: 'CLOSE'; font-size: var(--wp--preset--font-size--small); margin-right: 8px; }
.jb-nav .wp-block-navigation__responsive-container-close svg { display: none; }
@media (max-width: 900px) {
  :root { --jb-gutter: 24px; }
  .jb-section, .jb-footer { padding-block: var(--wp--preset--spacing--70); }
  .jb-nav .is-menu-open .wp-block-navigation__container { column-gap: var(--wp--preset--spacing--60); }
  .jb-query .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  :root { --jb-gutter: 16px; --jb-header-height: 88px; }
  .jb-header-inner { padding-block: 20px; }
  .jb-nav .is-menu-open .wp-block-navigation__container { display: flex; align-items: flex-start; gap: var(--wp--preset--spacing--50); }
  .jb-nav .is-menu-open .jb-nav-contact { font-size: var(--wp--preset--font-size--small); }
  .jb-query .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms; transition-duration: .01ms; scroll-behavior: auto; }
}
