/* The existing fixed-page body styles remain intact. Only shared navigation is restyled. */
body:not(.iekatsu-2026),body:not(.iekatsu-2026) #body_wrap {
 --paper:#fff;--paper-2:#f4f6f8;--ink:#242424;--ink-2:#4b4f52;--muted:#707070;--line:#d8d8d8;--line-strong:#242424;--accent:#2e71c0;--good:#2e71c0;
 --f-ja:YuGothic,"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--f-serif:var(--f-ja);--f-grotesk:var(--f-ja);--f-script:var(--f-ja);
 --warm-white:#fff;--warm-off:#f4f6f8;--black:#242424;--accent-dark:#245da1;--accent-pale:#f0f5fc;--border:#d8d8d8;--border-light:#e6e9ec;
 --font-body:var(--f-ja);--font-serif:var(--f-ja);--font-display:var(--f-ja);
}
body:not(.iekatsu-2026){background:#fff;color:#242424;font-family:YuGothic,"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;}
body :is(.sitehead,.sitefoot,.mobilebar){
  --paper: #fff;
  --white: #fff;
  --ink: #242424;
  --green: #242424;
  --muted: #707070;
  --line: #d8d8d8;
  --accent: #242424;
  --wash: #f4f4f4;
  --font: "游ゴシック体 Std", YuGothicStd, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, "Helvetica Neue", Arial, sans-serif;

  --accent: #2e71c0;
  --accent-blue: #2e71c0;
  --accent-blue-hover: #245a9a;
  --accent-red: #ed1343;
  --accent-red-action: #d9103b;
  --accent-red-hover: #b80d32;
  --accent-red-ink: #c91039;
  --accent-wash: #f3f7fc;

  --ad-rule: #dedfdf;
  --ad-copy: #4b4f52;
  --ad-wash: #f6f7f8;
}
body :is(.sitehead,.sitefoot,.mobilebar){font-family:var(--font);line-height:1.8;color:#242424;letter-spacing:.4px;}
body :is(.sitehead,.sitefoot,.mobilebar) a {text-decoration:none;}
body :is(.sitehead,.sitefoot,.mobilebar) *,body :is(.sitehead,.sitefoot,.mobilebar) *::before,body :is(.sitehead,.sitefoot,.mobilebar) *::after {box-sizing:border-box;}
body :is(.sitehead,.sitefoot,.mobilebar) a:focus-visible {outline:3px solid #0a5798;outline-offset:4px;}
body .sitehead{ display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: auto; padding: 22px max(32px, calc((100vw - 1320px)/2)); min-height: 106px; border-bottom: 1px solid var(--line); background: #fff; }
body :is(.sitehead,.sitefoot,.mobilebar) .brand{ font-family: var(--font); font-size: 31px; font-weight: 700; line-height: 1.15; letter-spacing: .5px; }
body :is(.sitehead,.sitefoot,.mobilebar) .brand small{ display: block; font-size: 9px; font-weight: 500; letter-spacing: .4px; line-height: 1.8; margin-top: 8px; }
body .mainnav{ display: flex; align-items: center; gap: 25px; font-size: 13px; font-weight: 700; }
body .mainnav a{ padding: 8px 0; }
body .headcta,body :is(.sitehead,.sitefoot,.mobilebar) .btn{ display: inline-flex; align-items: center; justify-content: center; gap: 34px; color: #242424; background: transparent; border: 2px solid currentColor; border-radius: 5px; padding: 13px 24px; min-height: 50px; font-size: 15px; font-weight: 500; line-height: 24px; letter-spacing: .4px; transition: color .2s, background .2s; }
body .headcta{ font-size: 13px; gap: 24px; }
body :is(.sitehead,.sitefoot,.mobilebar) .btn::after,body .headcta::after{ content: ""; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); flex: 0 0 auto; }
body :is(.sitehead,.sitefoot,.mobilebar) .btn:hover,body .headcta:hover{ background: #242424; color: #fff; text-decoration: none; }
body :is(.sitehead,.sitefoot,.mobilebar) .btn.light{ background: #fff; color: #242424; }
body .sitefoot{ background: var(--wash); border-top: 1px solid var(--line); color: #242424; padding: 45px max(35px, calc((100vw - 1180px)/2)); display: flex; justify-content: space-between; gap: 50px; }
body .sitefoot p{ font-size: 11px; line-height: 2; max-width: 720px; margin: 0; }
body .sitefoot nav{ display: flex; gap: 24px; font-size: 12px; margin-top: 18px; }
body .mobilebar{ display: none; }
@media (max-width:1100px) {body .sitehead{ padding: 22px 30px; gap: 20px; }
body .mainnav{ gap: 18px; font-size: 12px; }
body .headcta{ padding: 10px 17px; font-size: 12px; gap: 18px; }}
@media (max-width:900px) {body .mainnav{ display: none; }}
@media (max-width:760px) {body .sitehead{ min-height: 92px; padding: 17px 20px; gap: 15px; }
body :is(.sitehead,.sitefoot,.mobilebar) .brand{ font-size: 27px; }
body :is(.sitehead,.sitefoot,.mobilebar) .brand small{ font-size: 8px; margin-top: 5px; }
body .headcta{ font-size: 10px; gap: 16px; padding: 9px 11px; min-height: 42px; }
body .sitefoot{ display: block; padding: 38px 24px 110px; }
body .sitefoot p{ margin-top: 25px; }
body .sitefoot nav{ gap: 18px; font-size: 11px; }
body .mobilebar{ display: block; position: fixed; bottom: 0; left: 0; right: 0; z-index: 5; background: #fffffff7; border-top: 1px solid var(--line); padding: 9px 15px max(9px,env(safe-area-inset-bottom)); }
body .mobilebar .btn{ width: 100%; font-size: 12px; padding: 10px; gap: 20px; background: #242424; color: #fff; }}
@media (prefers-reduced-motion:reduce) {body :is(.sitehead,.sitefoot,.mobilebar) .btn,body .headcta{ transition: none; }}
body .headcta,body :is(.sitehead,.sitefoot,.mobilebar) .btn.solid,body .mobilebar .btn{
  color: #fff;
  background: var(--accent-red-action);
  border-color: var(--accent-red-action);
}
body .headcta:hover,body :is(.sitehead,.sitefoot,.mobilebar) .btn.solid:hover,body .mobilebar .btn:hover{
  color: #fff;
  background: var(--accent-red-hover);
  border-color: var(--accent-red-hover);
}
body .mainnav a:hover{ color: var(--accent-blue); }
body .sitehead{ column-gap: 28px; }
body .headcta,body :is(.sitehead,.sitefoot,.mobilebar) .btn{ font-weight: 700; }
body .mainnav a{ text-underline-offset: 7px; }
body .sitefoot p{ font-size: 12px; color: #5c6165; }
body .sitefoot nav a{ padding: 5px 0; }
@media (max-width:760px) {body .sitehead{ min-height: 84px; padding-top: 15px; padding-bottom: 15px; gap: 14px; }
body .sitehead .brand{ font-size: 27px; }
body .sitehead .brand small{ font-size: 8px; }
body .headcta{ font-size: 10px; padding: 10px 12px; gap: 16px; }
body .sitefoot{ padding-bottom: 110px; }
body .sitefoot p{ font-size: 12px; }
body .mobilebar .btn{ font-size: 12px; min-height: 50px; }}
@media (max-width:360px) {body .sitehead{ padding-left: 17px; padding-right: 17px; }
body .sitehead .brand{ font-size: 24px; }
body .headcta{ font-size: 9px; gap: 11px; padding: 9px 10px; }}
@media  (max-width: 760px) {body .sitehead .headcta{
    color: var(--accent-red-ink);
    background: #fff;
    border-color: var(--accent-red-action);
  }
body .sitehead .headcta:hover{
    color: var(--accent-red-ink);
    background: #fff4f6;
  }}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu{display:none;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu summary{cursor:pointer;list-style:none;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu summary::-webkit-details-marker{display:none;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu nav{position:absolute;right:16px;top:calc(100% - 2px);z-index:1000;display:grid;min-width:240px;padding:16px 22px;background:white;border:1px solid #d9dfe5;box-shadow:0 12px 22px #0001;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu nav a{padding:12px 0;font-size:13px;color:#26384d;}
body .sitehead{position:relative;z-index:50;}
body :is(.sitehead,.sitefoot,.mobilebar) .btn.ik-referral-cta{color:#fff;background:var(--accent-red-action);border-color:var(--accent-red-action);}
body :is(.sitehead,.sitefoot,.mobilebar) .btn.ik-referral-cta:hover{color:#fff;background:var(--accent-red-hover);border-color:var(--accent-red-hover);}
body .iekatsu-2026:has(#referral) .mobilebar{display:none;}
@media (max-width:900px){body .sitehead{column-gap:12px;flex-wrap:wrap;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu{display:block;flex:0 0 100%;border-top:1px solid #edf0f3;}
body :is(.sitehead,.sitefoot,.mobilebar) .ik-menu summary{text-align:right;padding:8px 0 2px;font-size:11px;color:#2e71c0;}}

/* Compact mobile header and two-column menu. */
@media (max-width: 900px) {
  body .sitehead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 44px;
    align-items: center;
    gap: 0 8px;
    min-height: 64px;
    padding: 8px 16px;
  }
  body .sitehead .mainnav { display: none; }
  body .sitehead .brand { min-width: 0; font-size: 26px; line-height: 1.1; }
  body .sitehead .brand small {
    margin-top: 3px;
    font-size: 8px;
    line-height: 1.6;
    letter-spacing: .2px;
    white-space: normal;
  }
  body .sitehead > .headcta {
    min-height: 44px;
    margin: 0;
    padding: 8px 9px;
    gap: 6px;
    border-width: 1px;
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: .2px;
    white-space: nowrap;
  }
  body .sitehead .ik-menu {
    display: block;
    position: static;
    width: 44px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }
  body .sitehead .ik-menu summary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    padding: 0;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: center;
  }
  body .sitehead .ik-menu[open] summary { background: #f3f7fc; }
  body .sitehead .ik-menu summary:focus-visible { outline: 2px solid #245da1; outline-offset: 2px; }
  body .sitehead .ik-menu nav {
    top: 100%;
    right: 16px;
    left: auto;
    width: min(420px, calc(100vw - 32px));
    max-width: calc(100% - 32px);
    min-width: 0;
    max-height: calc(100svh - 144px);
    overflow-y: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 8px;
    padding: 8px;
  }
  body .sitehead .ik-menu nav a {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 44px;
    padding: 6px;
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: .2px;
    text-align: left;
    white-space: normal;
  }
}
@media (max-width: 360px) {
  body .sitehead { padding-inline: 12px; }
  body .sitehead .brand { font-size: 24px; }
  body .sitehead .ik-menu nav {
    right: 12px;
    width: min(420px, calc(100vw - 24px));
    max-width: calc(100% - 24px);
  }
}

/* Mobile navigation: hamburger icon becomes a close icon while expanded. */
@media (max-width: 900px) {
  body .sitehead .ik-menu-icon { position: relative; display: block; width: 22px; height: 18px; }
  body .sitehead .ik-menu-icon > span { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; border-radius: 1px; transition: transform .15s ease, top .15s ease, opacity .15s ease; }
  body .sitehead .ik-menu-icon > span:nth-child(1) { top: 1px; }
  body .sitehead .ik-menu-icon > span:nth-child(2) { top: 8px; }
  body .sitehead .ik-menu-icon > span:nth-child(3) { top: 15px; }
  body .sitehead .ik-menu[open] .ik-menu-icon > span:nth-child(1) { top: 8px; transform: rotate(45deg); }
  body .sitehead .ik-menu[open] .ik-menu-icon > span:nth-child(2) { opacity: 0; }
  body .sitehead .ik-menu[open] .ik-menu-icon > span:nth-child(3) { top: 8px; transform: rotate(-45deg); }
}
@media (prefers-reduced-motion: reduce) {
  body .sitehead .ik-menu-icon > span { transition: none; }
}
