@import url("./home-v11.css");

:root { --home-blue:#1967d2; --home-blue-dark:#1557b0; --home-sky:#eef8ff; --home-mint:#35b98b; --home-ink:#20304a; --home-muted:#65758b; --home-line:#dceaf5; --home-shadow:0 14px 40px rgba(57,91,124,.11); }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
.home-v12 { margin:0; color:var(--home-ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif; }
.home-v12 *, .home-v12 *::before, .home-v12 *::after { box-sizing:border-box; }
.home-v12 a { color:inherit; }
.home-v12 img { display:block; max-width:100%; height:auto; }
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94); border-bottom:1px solid rgba(220,234,245,.9); backdrop-filter:blur(14px); }
.site-header-inner { width:min(1180px,calc(100% - 40px)); height:76px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-brand { display:flex; align-items:center; gap:10px; text-decoration:none; flex:none; }
.site-brand img { width:48px; height:48px; object-fit:contain; }
.site-brand span { display:grid; line-height:1.2; }
.site-brand strong { font-size:1.05rem; letter-spacing:.03em; }
.site-brand small { margin-top:3px; color:var(--home-muted); font-size:.68rem; }
.desktop-nav { display:flex; align-items:center; gap:24px; font-size:.88rem; font-weight:700; }
.desktop-nav a { min-height:44px; display:grid; place-items:center; text-decoration:none; color:#46566d; white-space:nowrap; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color:var(--home-blue); }
.mobile-menu { display:none; position:relative; }
.home-shell { overflow:hidden; }
.home-shell > section { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.hero-section { min-height:590px; padding:68px 64px 30px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:32px; background:linear-gradient(135deg,#f2faff 0%,#fff 56%,#effcf8 100%); border-radius:0 0 48px 48px; position:relative; }
.hero-section::before { content:""; position:absolute; width:260px; height:260px; border-radius:50%; background:#dff4ff; filter:blur(2px); left:-100px; top:70px; opacity:.65; }
.hero-copy-block { position:relative; z-index:1; }
.section-eyebrow { margin:0 0 12px; color:var(--home-blue); font-size:.76rem; font-weight:800; letter-spacing:.16em; }
.hero-section h1 { margin:0; font-size:clamp(2.45rem,4vw,3.2rem); line-height:1.22; letter-spacing:-.055em; color:#162943; }
.hero-lead { max-width:590px; margin:24px 0 0; color:var(--home-muted); font-size:1.12rem; line-height:1.9; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.home-btn { min-height:52px; padding:0 24px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; gap:10px; text-decoration:none; font-weight:800; transition:transform .18s ease,box-shadow .18s ease; }
.home-btn-primary { color:#fff!important; background:linear-gradient(135deg,var(--home-blue),#3182ea); box-shadow:0 8px 20px rgba(25,103,210,.22); }
.home-btn-secondary { color:var(--home-blue)!important; background:#fff; border:1px solid #bcd8f2; }
.home-btn:hover { transform:translateY(-2px); }
.home-btn-disabled { color:#8794a5; background:#eef1f4; cursor:not-allowed; }
.home-btn-disabled span { padding:3px 7px; border-radius:6px; background:#dfe5ea; font-size:.68rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:18px; margin:26px 0 0; padding:0; list-style:none; color:#64758b; font-size:.82rem; font-weight:700; }
.hero-trust li::before { content:"✓"; margin-right:6px; color:var(--home-mint); }
.hero-visual { min-height:460px; position:relative; display:flex; align-items:flex-end; justify-content:center; }
.hero-visual img { width:min(432px,90%); filter:drop-shadow(0 20px 24px rgba(43,74,99,.16)); }
.hero-bubble { position:absolute; z-index:2; top:30px; right:20px; padding:15px 20px; border:1px solid #dceaf5; border-radius:20px 20px 20px 4px; background:#fff; box-shadow:var(--home-shadow); color:#456078; font-size:.85rem; font-weight:800; line-height:1.55; transform:rotate(3deg); }
#dev-mode-note { width:min(1180px,calc(100% - 40px)); margin:20px auto 0; }
.feature-section, .useful-section, .learning-tools { padding-block:72px; }
.home-section-heading { max-width:650px; margin:0 auto 42px; text-align:center; }
.home-section-heading h2, .guide-banner h2, .career-section h2, .bottom-cta h2 { margin:0; color:#162943; font-size:clamp(1.8rem,3.5vw,2.6rem); line-height:1.35; }
.home-section-heading > p:last-child { margin:14px 0 0; color:var(--home-muted); }
.feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.feature-card { min-width:0; padding:22px 20px 24px; border:1px solid var(--home-line); border-radius:24px; background:#fff; box-shadow:0 8px 26px rgba(57,91,124,.07); text-decoration:none; position:relative; overflow:hidden; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.feature-card:hover { transform:translateY(-5px); box-shadow:var(--home-shadow); border-color:#b8daf3; }
.feature-card:nth-child(1) { border-color:#d8eaf8; background:linear-gradient(180deg,#fff 55%,#f5faff); }
.feature-card:nth-child(1) .feature-number { color:#2872b8; background:#e9f4fd; }
.feature-card:nth-child(2) { border-color:#d7eee5; background:linear-gradient(180deg,#fff 55%,#f4fbf8); }
.feature-card:nth-child(2) .feature-number { color:#23805f; background:#e8f7f0; }
.feature-card:nth-child(3) { border-color:#f0e4c9; background:linear-gradient(180deg,#fff 55%,#fffaf0); }
.feature-card:nth-child(3) .feature-number { color:#956b12; background:#fff3d5; }
.feature-card:nth-child(4) { border-color:#efdee5; background:linear-gradient(180deg,#fff 55%,#fff7f9); }
.feature-card:nth-child(4) .feature-number { color:#a95874; background:#fbeaf0; }
.feature-card img { width:100%; aspect-ratio:1.28/1; object-fit:contain; margin:-12px auto 4px; }
.feature-number { position:absolute; top:18px; left:18px; display:grid; place-items:center; width:36px; height:28px; border-radius:9px; color:var(--home-blue); background:#ebf6ff; font-size:.72rem; font-weight:900; }
.feature-card h3 { margin:12px 0 8px; font-size:1.15rem; }
.feature-card p { min-height:3.6em; margin:0; color:var(--home-muted); font-size:.88rem; line-height:1.75; }
.card-link { display:flex; justify-content:space-between; align-items:center; margin-top:18px; color:var(--home-blue); font-size:.82rem; font-weight:800; }
.guide-banner, .career-section { min-height:360px; margin-bottom:64px; padding:42px 72px; display:grid; grid-template-columns:.7fr 1.3fr; align-items:center; gap:64px; border-radius:32px; }
.guide-banner { background:linear-gradient(135deg,#e9f7ff,#f4fbff); }
.guide-banner img, .career-section img { width:300px; max-height:290px; object-fit:contain; justify-self:center; }
.guide-banner p:not(.section-eyebrow), .career-section p:not(.section-eyebrow) { max-width:620px; color:var(--home-muted); line-height:1.9; }
.guide-banner .home-btn, .career-section .home-btn { margin-top:10px; }
.career-section { grid-template-columns:1.3fr .7fr; background:linear-gradient(135deg,#f5faf8,#edf9f5); }
.useful-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.useful-grid > * { min-height:220px; padding:28px; border:1px solid var(--home-line); border-radius:22px; background:#fff; text-decoration:none; box-shadow:0 8px 26px rgba(57,91,124,.06); }
.useful-grid > a:hover { border-color:#afd3ed; box-shadow:var(--home-shadow); }
.useful-grid span { color:var(--home-blue); font-size:.76rem; font-weight:800; }
.useful-grid h3 { margin:12px 0 10px; font-size:1.25rem; }
.useful-grid p { color:var(--home-muted); font-size:.88rem; line-height:1.75; }
.useful-grid b { display:block; margin-top:22px; color:var(--home-blue); font-size:.8rem; }
.useful-card-disabled { background:#f7f9fb!important; }
.useful-card-disabled b { color:#9aa6b5; }
.learning-tools { width:100%!important; max-width:none; padding-inline:max(20px,calc((100% - 1180px)/2)); background:#f5f9fc; }
.learning-tools > * { max-width:1180px; margin-left:auto; margin-right:auto; }
.dashboard-summary, .home-panel { padding:28px; border:1px solid var(--home-line); border-radius:24px; background:#fff; box-shadow:0 8px 26px rgba(57,91,124,.06); }
.dashboard-summary { margin-bottom:20px; }
.dynamic-grid, .tools-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.home-panel { margin-bottom:20px; }
.dynamic-grid .home-panel, .tools-grid .home-panel { margin-bottom:0; }
.panel-heading { margin-bottom:20px; }
.panel-heading .section-eyebrow { margin-bottom:6px; }
.panel-heading h2 { margin:0; font-size:1.35rem; }
.panel-heading-row { display:flex; justify-content:space-between; align-items:end; }
.panel-heading-row > span { color:var(--home-muted); font-size:.82rem; font-weight:700; }
.tools-grid-lower { align-items:start; margin-top:20px; }
.guide-link-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.guide-link-card { min-height:74px; padding:13px 15px; display:grid; border:1px solid var(--home-line); border-radius:13px; text-decoration:none; }
.guide-link-card span { color:var(--home-blue); font-size:.7rem; font-weight:700; }
.guide-link-card strong { font-size:.86rem; }
.bottom-cta { min-height:320px; margin-top:68px; margin-bottom:52px; padding:38px 72px; display:grid; grid-template-columns:260px 1fr; align-items:center; gap:56px; border-radius:32px; color:#fff; background:linear-gradient(135deg,#1768cc,#2e86df); box-shadow:0 18px 45px rgba(25,103,210,.22); }
.bottom-cta img { max-height:250px; object-fit:contain; filter:drop-shadow(0 15px 18px rgba(0,0,0,.12)); }
.bottom-cta h2 { color:#fff; }
.bottom-cta p { margin:14px 0 22px; line-height:1.8; color:#eaf4ff; }
.bottom-cta .home-btn-primary { color:var(--home-blue)!important; background:#fff; box-shadow:none; }
.about-section { margin-bottom:64px; padding:28px 32px; border-top:1px solid var(--home-line); color:var(--home-muted); }
.about-section h2 { color:var(--home-ink); font-size:1.1rem; }
.home-footer { padding:40px max(20px,calc((100% - 1180px)/2)) 90px; border-top:1px solid var(--home-line); background:#f8fbfd; }
.home-footer > div { display:flex; justify-content:space-between; gap:30px; }
.footer-brand { font-weight:900; text-decoration:none; }
.home-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:18px; }
.home-footer nav a, .home-footer nav span { min-height:44px; display:inline-flex; align-items:center; color:#627288; font-size:.8rem; }
.home-footer > p { margin-top:26px; color:#8996a6; font-size:.72rem; text-align:center; }
.home-v12 .bottom-nav { display:none; }

@media (max-width:980px) {
  .desktop-nav { display:none; }
  .mobile-menu { display:block; }
  .mobile-menu summary { width:46px; height:46px; padding:12px; display:flex; flex-direction:column; justify-content:center; gap:5px; border:1px solid var(--home-line); border-radius:12px; cursor:pointer; list-style:none; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { width:100%; height:2px; background:#40546c; border-radius:2px; }
  .mobile-menu nav { position:absolute; top:54px; right:0; width:250px; padding:10px; display:grid; border:1px solid var(--home-line); border-radius:16px; background:#fff; box-shadow:var(--home-shadow); }
  .mobile-menu nav a { min-height:46px; padding:0 12px; display:flex; align-items:center; border-radius:10px; text-decoration:none; font-weight:700; }
  .mobile-menu nav a:hover { background:var(--home-sky); }
  .hero-section { min-height:540px; padding-inline:48px; }
  .feature-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:700px) {
  html { scroll-padding-top:68px; }
  .site-header-inner { width:calc(100% - 28px); height:66px; }
  .site-brand img { width:42px; height:42px; }
  .site-brand small { display:none; }
  .home-shell > section { width:calc(100% - 28px); }
  .hero-section { min-height:0; padding:46px 22px 20px; display:flex; flex-direction:column; gap:6px; border-radius:0 0 28px 28px; text-align:center; }
  .hero-section h1 { font-size:clamp(2rem,10vw,2.75rem); }
  .hero-lead { margin-top:18px; font-size:1rem; line-height:1.75; }
  .hero-actions { display:grid; margin-top:25px; }
  .home-btn { width:100%; min-height:52px; }
  .hero-trust { justify-content:center; gap:9px 14px; font-size:.74rem; }
  .hero-visual { width:100%; min-height:260px; margin-top:8px; }
  .hero-visual img { width:min(320px,90%); }
  .hero-bubble { top:20px; right:2px; padding:10px 12px; font-size:.7rem; }
  .feature-section, .useful-section, .learning-tools { padding-block:52px; }
  .home-section-heading { margin-bottom:30px; }
  .feature-grid, .useful-grid, .dynamic-grid, .tools-grid { grid-template-columns:1fr; }
  .feature-card { min-height:190px; padding:20px 18px 20px 158px; }
  .feature-card img { position:absolute; left:4px; bottom:0; width:150px; height:170px; margin:0; object-fit:contain; }
  .feature-number { top:16px; left:auto; right:16px; }
  .feature-card p { min-height:0; }
  .guide-banner, .career-section { min-height:0; margin-bottom:44px; padding:28px 22px; display:flex; flex-direction:column; gap:20px; text-align:center; border-radius:24px; }
  .guide-banner img, .career-section img { width:210px; max-height:190px; order:0; }
  .guide-banner div, .career-section div { order:1; }
  .guide-banner .home-btn, .career-section .home-btn { margin-top:6px; }
  .useful-grid > * { min-height:190px; }
  .learning-tools { padding-inline:14px; }
  .dashboard-summary, .home-panel { padding:20px 16px; border-radius:18px; }
  .dynamic-grid, .tools-grid { gap:14px; }
  .guide-link-grid { grid-template-columns:1fr; }
  .bottom-cta { margin-top:50px; margin-bottom:40px; padding:24px 20px 30px; display:flex; flex-direction:column; gap:12px; text-align:center; border-radius:24px; }
  .bottom-cta img { width:190px; max-height:180px; }
  .about-section { padding:24px 8px; }
  .home-footer { padding-bottom:100px; }
  .home-footer > div { display:grid; }
  .home-footer nav { justify-content:flex-start; }
  .home-v12 .bottom-nav { display:grid; }
  .home-v12 .bottom-nav-item { min-height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
}

@media (max-width:390px) {
  .feature-card { padding-left:138px; }
  .feature-card img { width:132px; }
  .feature-card h3 { font-size:1.05rem; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .home-btn,.feature-card { transition:none; } }
