:root{--bg:#f5f0e8;--surface:#ffffff;--text:#2b2b2b;--muted:#6b6b6b;--accent:#b55a2e;--accent-soft:#f0e0d0;--line:#d9d0c0;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--radius:.5rem;--shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px rgba(0,0,0,.05);--font-serif:Georgia,'Times New Roman',serif;--font-sans:system-ui,-apple-system,sans-serif;--content-max:1100px;--content-pad:1.25rem;--header-h:4rem;--transition:.2s ease}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-serif);line-height:1.6;font-size:1rem;-webkit-font-smoothing:antialiased}

img,svg{display:block;max-width:100%;height:auto}

ul,ol{padding-left:1.5rem}

li{margin-bottom:.5rem}

h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);line-height:1.2;color:var(--text);margin:0 0 var(--sp-4)}

h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;letter-spacing:-.02em}

h2{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;letter-spacing:-.01em}

h3{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600}

h4{font-size:1.125rem;font-weight:600}

p{margin:0 0 var(--sp-4)}

a{color:var(--accent);text-decoration:none;transition:color var(--transition)}

a:hover{color:var(--text)}

a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}

.bushido-header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--line);padding:0 var(--content-pad)}

.bushido-header .bushido-brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--text);padding:var(--sp-3) 0;text-decoration:none}

.bushido-header .bushido-brand:hover{color:var(--accent)}

.bushido-header .bushido-brand svg{width:2rem;height:2rem;fill:var(--accent)}

.bushido-main{min-height:70vh}

.bushido-section{padding:var(--sp-7) var(--content-pad);max-width:var(--content-max);margin:0 auto}

.bushido-section.second{padding-top:var(--sp-5)}

.bushido-heading{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:var(--sp-3)}

.bushido-lead{font-size:clamp(1.125rem,2vw,1.375rem);color:var(--muted);max-width:65ch;margin-bottom:var(--sp-6)}

.bushido-intro{display:grid;gap:var(--sp-6);align-items:center;padding-top:var(--sp-6)}

.hero{display:grid;gap:var(--sp-6);align-items:center;padding:var(--sp-6) var(--content-pad) var(--sp-7);max-width:var(--content-max);margin:0 auto}

.hero-content h1{margin-bottom:var(--sp-3)}

.hero-content .bushido-lead{margin-bottom:var(--sp-5)}

.hero-illustration svg{max-width:100%;height:auto;fill:var(--accent-soft);stroke:var(--accent)}

.bushido-grid{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.bushido-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition)}

.bushido-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(0,0,0,.1)}

.bushido-cardtitle{font-size:1.25rem;margin-bottom:var(--sp-2)}

.bushido-cardtext{color:var(--muted);margin-bottom:0}

.bushido-card-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}

.bushido-features{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.bushido-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-icon{width:2.5em;height:2.5em;fill:var(--accent);margin-bottom:var(--sp-3)}

.icon-large{width:4em;height:4em}

.bushido-icon-bento{width:3em;height:3em;fill:var(--accent)}

.bushido-illustration{max-width:100%;height:auto;fill:var(--accent-soft);stroke:var(--accent)}

.bushido-definitions{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-dl{display:grid;gap:var(--sp-3)}

.bushido-dl dt{font-weight:700;color:var(--accent)}

.bushido-dl dd{margin:0;color:var(--muted)}

.bushido-numbered{counter-reset:step;list-style:none;padding:0}

.bushido-numbered li{counter-increment:step;position:relative;padding-left:2.5rem;margin-bottom:var(--sp-4)}

.bushido-numbered li::before{content:counter(step);position:absolute;left:0;top:0;width:1.75rem;height:1.75rem;background:var(--accent);color:var(--surface);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}

.bushido-steps{display:grid;gap:var(--sp-5)}

.bushido-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}

.bushido-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:600px}

.bushido-table th,.bushido-table td{padding:var(--sp-3) var(--sp-4);text-align:left;border-bottom:1px solid var(--line)}

.bushido-table th{background:var(--accent-soft);font-weight:700;color:var(--text)}

.bushido-table tr:last-child td{border-bottom:none}

.bushido-table tr:hover td{background:var(--accent-soft)}

.bushido-pullquote{margin:var(--sp-6) 0;padding:var(--sp-5) var(--sp-6);background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;font-style:italic;font-size:1.125rem;color:var(--text)}

.bushido-quote{font-style:italic;color:var(--muted);border-left:3px solid var(--line);padding-left:var(--sp-4);margin:var(--sp-5) 0}

.bushido-figure{margin:var(--sp-6) 0;text-align:center}

.bushido-figure svg{max-width:100%;height:auto;fill:var(--accent-soft);stroke:var(--accent)}

.bushido-feedback{background:var(--accent-soft);border-radius:var(--radius);padding:var(--sp-6);margin:var(--sp-6) 0}

.bushido-feedback blockquote{margin:0;font-size:1.125rem;font-style:italic}

.bushido-feedback cite{display:block;margin-top:var(--sp-3);font-style:normal;color:var(--muted)}

.bushido-contact{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-6)}

.bushido-contact-lead{font-size:1.125rem;color:var(--muted);margin-bottom:var(--sp-4)}

.bushido-contact a{font-weight:700}

.bushido-final{text-align:center;padding:var(--sp-8) var(--content-pad)}

.bushido-final .bushido-heading{margin-bottom:var(--sp-4)}

.bushido-final .cta{display:inline-block;background:var(--accent);color:var(--surface);padding:var(--sp-3) var(--sp-6);border-radius:var(--radius);font-weight:700;transition:background var(--transition),transform var(--transition)}

.bushido-final .cta:hover{background:var(--text);transform:translateY(-2px)}

.bushido-footer{background:var(--surface);border-top:1px solid var(--line);padding:var(--sp-6) var(--content-pad);text-align:center;color:var(--muted);font-size:.875rem}

.bushido-footer a{color:var(--accent)}

.bushido-footer a:hover{color:var(--text)}

.bushido-nav{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;padding:var(--sp-4) 0}

.bushido-navlink{font-family:var(--font-serif);font-size:1rem;color:var(--text);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);transition:background var(--transition),color var(--transition)}

.bushido-navlink:hover{background:var(--accent-soft);color:var(--accent)}

.bushido-tag{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:var(--sp-1) var(--sp-3);border-radius:999px;font-size:.875rem;font-weight:700;margin:var(--sp-1)}

.bushido-note{background:var(--accent-soft);border-left:4px solid var(--accent);padding:var(--sp-4) var(--sp-5);border-radius:0 var(--radius) var(--radius) 0;margin:var(--sp-5) 0;font-size:.95rem}

.bushido-link{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;color:var(--accent)}

.bushido-link:hover{color:var(--text)}

.bushido-link svg{width:1.25em;height:1.25em;fill:currentColor}

.bushido-touch{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.team-section{padding:var(--sp-7) var(--content-pad);max-width:var(--content-max);margin:0 auto}

.team-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}

.team-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);text-align:center;transition:transform var(--transition),box-shadow var(--transition)}

.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}

.team-icon{width:4rem;height:4rem;fill:var(--accent);margin:0 auto var(--sp-3)}

.team-card h3{margin-bottom:var(--sp-1)}

.team-card p{color:var(--muted);font-size:.95rem}

.bushido-defs{display:grid;gap:var(--sp-5)}

.bushido-defs .bushido-card{background:var(--surface)}

.bushido-defs .bushido-cardtitle{color:var(--accent)}

.bushido-defs .bushido-cardtext{color:var(--muted)}

.advantages{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.advantages .bushido-card{background:var(--surface)}

.advantages .bushido-cardtitle{color:var(--accent)}

.specialties{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.specialties .bushido-card{background:var(--surface)}

.specialties .bushido-cardtitle{color:var(--accent)}

.bushido-features .bushido-feature{background:var(--surface)}

.bushido-features .bushido-icon{fill:var(--accent)}

.bushido-features h3{color:var(--accent)}

.bushido-features p{color:var(--muted)}

.bushido-steps .bushido-numbered{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-steps .bushido-numbered li{color:var(--text)}

.bushido-steps .bushido-numbered li::before{background:var(--accent)}

.bushido-table-wrap{overflow-x:auto}

.bushido-table{min-width:600px}

.bushido-table th{background:var(--accent-soft)}

.bushido-table td{border-color:var(--line)}

.bushido-table tr:hover td{background:var(--accent-soft)}

.bushido-pullquote{background:var(--accent-soft);border-left-color:var(--accent)}

.bushido-quote{border-left-color:var(--line)}

.bushido-figure{background:var(--accent-soft);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-feedback{background:var(--accent-soft)}

.bushido-contact{background:var(--surface)}

.bushido-contact-lead{color:var(--muted)}

.bushido-final{background:var(--accent-soft)}

.bushido-final .cta{background:var(--accent)}

.bushido-footer{background:var(--surface)}

.bushido-footer a{color:var(--accent)}

.bushido-footer a:hover{color:var(--text)}

.bushido-nav{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;padding:var(--sp-4) 0}

.bushido-navlink{font-family:var(--font-serif);font-size:1rem;color:var(--text);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);transition:background var(--transition),color var(--transition)}

.bushido-navlink:hover{background:var(--accent-soft);color:var(--accent)}

.bushido-tag{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:var(--sp-1) var(--sp-3);border-radius:999px;font-size:.875rem;font-weight:700;margin:var(--sp-1)}

.bushido-note{background:var(--accent-soft);border-left:4px solid var(--accent);padding:var(--sp-4) var(--sp-5);border-radius:0 var(--radius) var(--radius) 0;margin:var(--sp-5) 0;font-size:.95rem}

.bushido-link{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;color:var(--accent)}

.bushido-link:hover{color:var(--text)}

.bushido-link svg{width:1.25em;height:1.25em;fill:currentColor}

.bushido-touch{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.team-section{padding:var(--sp-7) var(--content-pad);max-width:var(--content-max);margin:0 auto}

.team-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}

.team-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5);text-align:center;transition:transform var(--transition),box-shadow var(--transition)}

.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}

.team-icon{width:4rem;height:4rem;fill:var(--accent);margin:0 auto var(--sp-3)}

.team-card h3{margin-bottom:var(--sp-1)}

.team-card p{color:var(--muted);font-size:.95rem}

.bushido-defs{display:grid;gap:var(--sp-5)}

.bushido-defs .bushido-card{background:var(--surface)}

.bushido-defs .bushido-cardtitle{color:var(--accent)}

.bushido-defs .bushido-cardtext{color:var(--muted)}

.advantages{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.advantages .bushido-card{background:var(--surface)}

.advantages .bushido-cardtitle{color:var(--accent)}

.specialties{display:grid;gap:var(--sp-5);grid-template-columns:1fr}

.specialties .bushido-card{background:var(--surface)}

.specialties .bushido-cardtitle{color:var(--accent)}

.bushido-features .bushido-feature{background:var(--surface)}

.bushido-features .bushido-icon{fill:var(--accent)}

.bushido-features h3{color:var(--accent)}

.bushido-features p{color:var(--muted)}

.bushido-steps .bushido-numbered{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-steps .bushido-numbered li{color:var(--text)}

.bushido-steps .bushido-numbered li::before{background:var(--accent)}

.bushido-table-wrap{overflow-x:auto}

.bushido-table{min-width:600px}

.bushido-table th{background:var(--accent-soft)}

.bushido-table td{border-color:var(--line)}

.bushido-table tr:hover td{background:var(--accent-soft)}

.bushido-pullquote{background:var(--accent-soft);border-left-color:var(--accent)}

.bushido-quote{border-left-color:var(--line)}

.bushido-figure{background:var(--accent-soft);border-radius:var(--radius);padding:var(--sp-5)}

.bushido-feedback{background:var(--accent-soft)}

.bushido-contact{background:var(--surface)}

.bushido-contact-lead{color:var(--muted)}

.bushido-final{background:var(--accent-soft)}

.bushido-final .cta{background:var(--accent)}

.bushido-footer{background:var(--surface)}

.bushido-footer a{color:var(--accent)}

.bushido-footer a:hover{color:var(--text)}

@media (min-width:640px){:root{--content-pad:2rem}.bushido-intro{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr 1fr}.bushido-grid{grid-template-columns:repeat(2,1fr)}.bushido-features{grid-template-columns:repeat(2,1fr)}.bushido-touch{grid-template-columns:repeat(2,1fr)}.bushido-defs{grid-template-columns:repeat(2,1fr)}.advantages{grid-template-columns:repeat(2,1fr)}.specialties{grid-template-columns:repeat(2,1fr)}.bushido-steps{grid-template-columns:repeat(2,1fr)}.bushido-contact{padding:var(--sp-7)}}

@media (min-width:900px){:root{--content-pad:2.5rem}.bushido-section{padding-top:var(--sp-8);padding-bottom:var(--sp-8)}.bushido-intro{grid-template-columns:1.2fr 1fr}.hero{grid-template-columns:1.2fr 1fr}.bushido-grid{grid-template-columns:repeat(3,1fr)}.bushido-features{grid-template-columns:repeat(3,1fr)}.bushido-touch{grid-template-columns:repeat(3,1fr)}.bushido-defs{grid-template-columns:repeat(3,1fr)}.advantages{grid-template-columns:repeat(3,1fr)}.specialties{grid-template-columns:repeat(3,1fr)}.bushido-steps{grid-template-columns:repeat(3,1fr)}.bushido-table-wrap{overflow-x:visible}.bushido-table{min-width:0}}

@media (min-width:1200px){:root{--content-pad:3rem}.bushido-section{padding-top:var(--sp-9);padding-bottom:var(--sp-9)}.bushido-intro{grid-template-columns:1.4fr 1fr}.hero{grid-template-columns:1.4fr 1fr}.bushido-grid{grid-template-columns:repeat(4,1fr)}.bushido-features{grid-template-columns:repeat(4,1fr)}.bushido-touch{grid-template-columns:repeat(4,1fr)}.bushido-defs{grid-template-columns:repeat(4,1fr)}.advantages{grid-template-columns:repeat(4,1fr)}.specialties{grid-template-columns:repeat(4,1fr)}.bushido-steps{grid-template-columns:repeat(4,1fr)}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


/* --- guard --- */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; margin: 0; }
main > *, section > *, ul > li, ol > li { min-width: 0; }
svg, table, pre, blockquote, img { max-width: 100%; }
svg { height: auto; }
h1, h2, h3, h4, p, li, dt, dd, td, th, a, figcaption {
  overflow-wrap: anywhere;
}
table { display: block; overflow-x: auto; }
main header, main footer, main nav { display: none !important; }

.wp-header, .wp-footer, main {
  padding-left: max(1.25rem, env(safe-area-inset-left)) !important;
  padding-right: max(1.25rem, env(safe-area-inset-right)) !important;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.wp-header {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem 1.25rem;
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
.wp-footer {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
  margin-top: 2rem;
}
.wp-tagline {
  flex-basis: 100%;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  font-size: 0.95rem !important;
  line-height: 1.45 !important;
  max-width: none !important;
}

/* --- hamburger --- */
.wp-menu { margin: 0 0 0 auto; }
.wp-menu-btn {
  list-style: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  cursor: pointer;
  color: inherit;
  background: var(--surface, #fff);
  border: 1px solid var(--line, #d4d4d4);
  border-radius: 0.5rem;
}
.wp-menu-btn::-webkit-details-marker,
.wp-menu-btn::marker { display: none; content: ""; }
.wp-menu-bars,
.wp-menu-bars::before,
.wp-menu-bars::after {
  display: block;
  width: 1.15rem;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  position: relative;
}
.wp-menu-bars::before,
.wp-menu-bars::after {
  content: "";
  position: absolute;
  left: 0;
}
.wp-menu-bars::before { top: -6px; }
.wp-menu-bars::after { top: 6px; }

@media (max-width: 719px) {
  .wp-nav-wide { display: none !important; }
  .wp-menu:not([open]) > nav { display: none !important; }
  .wp-menu[open] { flex-basis: 100%; width: 100%; margin: 0; }
  .wp-menu[open] > nav {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    gap: 0 !important;
    padding: 0.5rem 0 0.15rem !important;
  }
  .wp-menu[open] > nav > a {
    display: block !important;
    padding: 0.7rem 0.15rem !important;
  }
}

@media (min-width: 720px) {
  .wp-menu { display: none !important; }
  .wp-nav-wide {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0.35rem 1.1rem;
    margin: 0 0 0 auto;
    align-items: center;
  }
}
