*,:before,:after{box-sizing:border-box}html{scroll-padding-top:1rem}body{margin:0;color:#172337;background:#fff;font-family:"Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;line-height:1.65}img,svg{max-width:100%}img{height:auto}a{color:inherit}button,input,select,textarea{font:inherit}button,select,summary{cursor:pointer}button,a,input,select,textarea,summary{touch-action:manipulation}:focus-visible{outline:3px solid #e08713!important;outline-offset:3px}button:disabled{cursor:wait}[hidden]{display:none!important}.cg-skip{position:absolute;z-index:100;top:0;left:0;background:white;color:black;padding:12px;transform:translateY(-110%)}.cg-skip:focus{transform:none}.craftgrid-wordmark{font:italic 400 1.4em/1 "Times New Roman",Times,serif}.cg-bar,.cg-footer,.cg-panel,.cg-local,.cg-contact{font-family:"Yu Gothic UI","Yu Gothic",Meiryo,sans-serif}.cg-bar{background:white;color:#142335;display:flex;align-items:center;justify-content:space-between;gap:1em;padding:9px clamp(12px,4vw,78px);border-bottom:1px solid #d6dce2;position:relative;z-index:3}.cg-brand{display:inline-flex;align-items:center;gap:7px;text-decoration:none;flex-shrink:0}.cg-brand img{width:53px;aspect-ratio:3/2;object-fit:contain}.cg-brand .craftgrid-wordmark{font-size:27px}.cg-bar nav,.cg-bar details>div{display:flex;align-items:center;gap:1rem}.cg-bar nav a,.cg-bar summary,.cg-bar details a{font-size:.84rem;font-weight:650;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.cg-bar details{display:none}.cg-bar nav a:hover,.cg-footer a:hover{text-decoration:underline}.cg-footer{color:#f5f6f8;background:#122035;padding:clamp(32px,5vw,78px);font-size:1rem}.cg-footer .cg-brand{color:white}.cg-footer .cg-brand img{background:white}.cg-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:1.2rem 0}.cg-footer nav a,.cg-footer button{min-height:44px;align-content:center}.cg-footer button,.cg-panel button{background:transparent;border:1px solid currentColor;border-radius:6px;color:inherit;padding:7px 14px;margin:3px}.cg-footer small{color:#c8d0db}.cg-analytics-notice{display:block;margin:.8rem 0 .25rem}.cg-contact{background:var(--surface,#f3f5f6);color:var(--page-ink,#142034);padding:clamp(40px,7vw,100px) max(6vw,calc((100vw - 1170px)/2));display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr);gap:clamp(25px,7vw,90px);overflow-wrap:anywhere;scroll-margin:18px}.cg-contact h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.2;margin:.3em 0}.cg-contact-intro p{max-width:39em}.cg-contact-origin{border-left:3px solid currentColor;padding-left:15px}.cg-contact form{color:#182437;background:#fff;border:1px solid #d8dee4;border-radius:8px;padding:clamp(18px,3vw,36px)}.cg-field{display:grid;gap:.38rem;margin:0 0 1rem;font-weight:600}.cg-field input,.cg-field textarea,.cg-field select{background:#fff;color:#122035;padding:11px 12px;border:1px solid #8897a4;border-radius:4px;min-width:0;width:100%;font-size:1rem}.cg-field small,.cg-alternate,.cg-local{font-size:.84rem}.cg-local:empty{display:none}.cg-ack{display:flex;align-items:center;gap:10px;min-height:48px}.cg-ack input{width:20px;height:20px;flex:none}.cg-trap{display:none}.cg-error{color:#a42732;min-height:0}.cg-error:empty{display:none}#cg-form-status:empty{margin:0}.cg-submit,#cg-new{background:#183754;border:0;color:white;padding:12px 20px;border-radius:5px;margin-top:12px;min-height:48px;font-weight:650}.cg-submit span{margin-left:1em}.cg-submit:active{transform:translateY(1px)}.cg-contact [aria-invalid=true]{border:2px solid #a52d30}.cg-alternate a{text-decoration:underline}.cg-panel{width:min(410px,94vw);color:#172337;background:white;border:1px solid #8291a4;border-radius:10px;padding:24px}.cg-panel::backdrop{background:#0c1c3199}.cg-panel h2{margin-top:0}.cg-panel button{min-height:44px}.cg-bc{font-size:.8rem}.cg-preview-only{padding:.7rem 1rem;background:#fff4d4;color:#3e3408;text-align:center}.cg-sticky{display:none}.cg-sticky.show{display:block;position:fixed;z-index:5;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));border-radius:32px;background:#112641;color:white;padding:10px 21px;min-height:44px;border:1px solid #fff;text-decoration:none;box-shadow:0 4px 16px #0002;font-weight:600}.cg-sticky:focus{outline:3px solid orange}
@media(max-width:720px){.cg-contact{grid-template-columns:1fr;padding:40px 16px}.cg-bar nav{display:none}.cg-bar details{display:block}.cg-bar details>div{position:absolute;right:0;top:100%;background:white;color:#132539;padding:16px 24px;box-shadow:0 12px 25px #10223422;flex-direction:column;align-items:stretch}.cg-bar summary{padding:0 6px}.cg-contact-origin{display:none}.cg-sticky.show{font-size:.88rem}}
html[data-motion=reduced] *,html[data-motion=reduced] *::before,html[data-motion=reduced] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html[data-page-paused] [data-spectacle] *,[data-spectacle].cg-offscreen *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

[data-demo-pending]{position:relative}
.cg-demo-loading{display:block;position:absolute;z-index:2;inset:auto 8px 8px auto;max-width:90%;padding:4px 10px;border:1px solid #bbc6ce;border-radius:4px;background:#fff;color:#263643;font:600 .83rem/1.45 system-ui,sans-serif}
[data-demo-pending] :disabled{cursor:wait;opacity:.65}

.cg-bar [data-motion-switch] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  gap: .5em;
  min-height: 44px;
  min-width: 7.7em;
  margin-inline-start: auto;
  padding: .4em .7em;
  color: #263744;
  background: #fff;
  border: 1px solid #a7b2b8;
  border-radius: 2em;
  font-size: .79rem;
  font-weight: 650;
}
.cg-bar [data-motion-switch]::before {
  content: '';
  width: .65em;
  height: .82em;
  border-inline: .22em solid currentColor;
}
.cg-bar [data-motion-switch][data-stopped=true]::before {
  width: 0;
  border: 0;
  border-block: .4em solid transparent;
  border-left: .63em solid currentColor;
}
.cg-bar [data-motion-switch]:enabled:hover { background: #eef3f5; }
html:not([data-motion]) [data-motion-switch] { visibility: hidden; }
[data-motion-switch]:disabled { cursor: default; }
.cg-writing {
  margin: -.35rem 0 1.2rem;
  padding-block: .15rem;
  border-block: 1px solid #dee4e8;
  color: #263947;
  font-size: .9rem;
}
.cg-writing summary { padding-block: .65rem; font-weight: 650; }
.cg-writing p { margin: .2rem 0 .75rem; }
.cg-writing button {
  min-height: 44px;
  margin-bottom: .6rem;
  padding: .35rem .85rem;
  border-radius: 4px;
  border: 1px solid #78909f;
  color: #183754;
  background: #f2f6f8;
  font-weight: 650;
}
.cg-contact form:has(#cg-message:disabled) .cg-writing { display: none; }
.cg-contact form[hidden] + .cg-alternate a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  margin-block: .4rem;
  padding: .65rem 1rem;
  background: #183754;
  color: #fff;
  border-radius: 5px;
  font-weight: 650;
  text-decoration: none;
}
@media (max-width: 450px) {
  .cg-bar { gap: .5rem; flex-wrap: wrap; }
  .cg-bar .cg-brand { gap: 4px; }
  .cg-bar .cg-brand img { width: 38px; }
  .cg-bar .craftgrid-wordmark { font-size: 23px; }
}

/* A static composition is the baseline, including when scripts are unavailable. */
html:not([data-motion]) *, html:not([data-motion]) *::before, html:not([data-motion]) *::after {
  animation: none !important;
}
html[data-page-paused] *, html[data-page-paused] *::before, html[data-page-paused] *::after,
.cg-offscreen, .cg-offscreen *,
.cg-offscreen *::before, .cg-offscreen *::after,
.cg-offscreen::before, .cg-offscreen::after {
  animation-play-state: paused !important;
}
