/* VISTA テーマ 共通スタイル — Claude Design の <helmet><style> から抽出 */
*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; }
body{ font-family:'Noto Sans JP', sans-serif; -webkit-font-smoothing:antialiased; }
img, svg{ max-width:100%; }
.navtoggle{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.navburger{ display:none; }
@media (max-width:1024px) {
  header > div{ padding:14px 20px !important; }
  header nav{ gap:18px !important; }
  header nav a{ font-size:13px !important; }
  section > div[style*="max-width"]{ padding-left:24px !important; padding-right:24px !important; }
  footer > div{ padding:32px 24px !important; }
}
@media (max-width:820px) {
  header > div{ flex-wrap:wrap !important; gap:12px !important; }
  .navburger{ display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; border-radius:10px; border:1px solid #DCE6EC; background:#fff; cursor:pointer; }
  .navburger span{ display:block; width:20px; height:2px; background:#1F3864; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
  .navtoggle:checked + .navburger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .navtoggle:checked + .navburger span:nth-child(2){ opacity:0; }
  .navtoggle:checked + .navburger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  header{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  header nav{ display:none !important; }
  @keyframes navIn{ from{ transform:translateX(100%); } to{ transform:translateX(0); } }
  .navtoggle:checked + .navburger{ position:fixed !important; top:13px !important; right:16px !important; z-index:101 !important; background:#fff !important; box-shadow:0 6px 18px rgba(31,56,100,.14) !important; }
  .navtoggle:checked ~ nav{ display:flex !important; position:fixed !important; inset:0 !important; z-index:100 !important; width:100% !important; flex-direction:column !important; justify-content:center !important; align-items:stretch !important; gap:0 !important; padding:80px 26px 40px !important; border-top:none !important; background:rgba(255,255,255,.97) !important; backdrop-filter:blur(12px); overflow-y:auto !important; animation:navIn .34s cubic-bezier(.22,.61,.36,1) both; box-shadow:-18px 0 44px rgba(31,56,100,.16) !important; }
  .navtoggle:checked ~ nav > a{ padding:19px 6px !important; border-bottom:1px solid #EDF3F6 !important; font-size:19px !important; font-weight:700 !important; letter-spacing:.04em !important; }
  .navtoggle:checked ~ nav > .bizmenu{ width:100% !important; flex-direction:column !important; align-items:stretch !important; padding:19px 6px !important; border-bottom:1px solid #EDF3F6 !important; }
  .navtoggle:checked ~ nav > .bizmenu > a{ font-size:19px !important; font-weight:700 !important; letter-spacing:.04em !important; }
  .navtoggle:checked ~ nav a[style*="999px"]{ width:100% !important; justify-content:center !important; margin-top:26px !important; border-bottom:none !important; font-size:17px !important; padding:18px 24px !important; }
  [style*="font-size: 56px"],[style*="font-size: 54px"],[style*="font-size: 52px"],[style*="font-size: 50px"],[style*="font-size: 46px"],[style*="font-size: 44px"],[style*="font-size: 42px"],[style*="font-size: 40px"]{ font-size:27px !important; line-height:1.4 !important; }
  [style*="font-size: 38px"],[style*="font-size: 36px"],[style*="font-size: 34px"],[style*="font-size: 33px"],[style*="font-size: 32px"],[style*="font-size: 30px"]{ font-size:23px !important; line-height:1.45 !important; }
  [style*="font-size: 28px"],[style*="font-size: 26px"],[style*="font-size: 25px"],[style*="font-size: 23px"],[style*="font-size: 22px"],[style*="font-size: 21px"],[style*="font-size: 20px"]{ font-size:18px !important; }
  [style*="font-size: 19px"],[style*="font-size: 18px"],[style*="font-size: 17px"]{ font-size:16px !important; }
  [style*="font-size: 280px"]{ font-size:110px !important; }
  [style*="height: 560px"],[style*="height: 540px"],[style*="height: 500px"],[style*="height: 480px"],[style*="height: 460px"],[style*="height: 440px"],[style*="height: 400px"],[style*="height: 380px"]{ height:230px !important; }
  [style*="padding: 100px 40px"],[style*="padding: 96px 40px"],[style*="padding: 92px 40px"],[style*="padding: 88px 40px"],[style*="padding: 84px 40px"],[style*="padding: 82px 40px"],[style*="padding: 80px 40px"],[style*="padding: 78px 40px"],[style*="padding: 76px 40px"],[style*="padding: 72px 40px"]{ padding-top:48px !important; padding-bottom:48px !important; }
  a[style*="padding: 19px"],a[style*="padding: 20px"],button[style*="padding: 19px"],button[style*="padding: 17px"]{ padding-top:15px !important; padding-bottom:15px !important; }
  .bizmenu{ position:static !important; }
  .bizmenu .bizmenu-panel{ position:static !important; left:auto !important; transform:none !important; padding-top:8px !important; opacity:1 !important; visibility:visible !important; display:none !important; }
  .bizmenu:hover .bizmenu-panel, .bizmenu:focus-within .bizmenu-panel{ display:block !important; transform:none !important; }
  [style*="grid-template-columns"]{ grid-template-columns:minmax(0,1fr) !important; }
  [style*="grid-template-columns"] > *{ min-width:0 !important; }
  [style*="padding: 44px 44px 40px"],[style*="padding: 44px 44px"],[style*="padding: 40px 36px"],[style*="padding: 40px 38px"],[style*="padding: 40px 34px"],[style*="padding: 38px 40px"],[style*="padding: 36px 34px"],[style*="padding: 34px 36px"]{ padding:24px 20px !important; }
  [style*="grid-template-columns"] > [style*="width: 1px"]{ display:none !important; }
  section > div[style*="max-width"]{ padding-top:56px !important; padding-bottom:56px !important; gap:34px !important; }
  section{ min-height:0 !important; }
  h1{ font-size:30px !important; line-height:1.35 !important; }
  h2{ font-size:24px !important; line-height:1.45 !important; }
  h3{ font-size:17px !important; }
  [style*="writing-mode"]{ display:none !important; }
  aside{ width:100% !important; }
  footer > div{ flex-direction:column !important; align-items:flex-start !important; gap:22px !important; }
  footer nav{ flex-wrap:wrap !important; row-gap:10px !important; gap:16px !important; }
  a[style*="min-width: 300px"],a[style*="min-width: 280px"],a[style*="min-width: 260px"],a[style*="min-width: 320px"],a[style*="min-width: 230px"],a[style*="min-width: 240px"],button[style*="min-width: 300px"],button[style*="min-width: 260px"]{ min-width:0 !important; width:100% !important; gap:14px !important; }
  [style*="white-space: nowrap"]{ white-space:normal !important; }
}
@media (max-width:560px) {
  section > div[style*="max-width"]{ padding-left:16px !important; padding-right:16px !important; padding-top:44px !important; padding-bottom:44px !important; }
  header > div{ padding:12px 16px !important; }
  h1{ font-size:25px !important; }
  h2{ font-size:21px !important; }
  p, span, li, div{ text-wrap:pretty; }
}
header nav a:hover, footer nav a:hover{ color:#49B5C3 !important; }
.bizmenu .bizmenu-panel{ opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px); transition:opacity .18s ease, transform .18s ease; }
.bizmenu:hover .bizmenu-panel{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }


/* style-hover 属性から生成 — インラインstyleに勝つため !important */
.vh-background-f2f8fa:hover{ background:#F2F8FA !important; }
.vh-background-3da3b1:hover{ background:#3DA3B1 !important; }
.vh-background-1c97a3:hover{ background:#1C97A3 !important; }
.vh-color-49b5c3:hover{ color:#49B5C3 !important; }
.vh-background-f7fbfc:hover{ background:#F7FBFC !important; }
.vh-opacity-72:hover{ opacity:.72 !important; }
